<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.bbritten.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.bbritten.com/feed.php">
        <title>BBritten.com - blog</title>
        <description>A Voyage Around My Ears</description>
        <link>https://www.bbritten.com/</link>
        <image rdf:resource="https://www.bbritten.com/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-04-03T21:19:06+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/christmas_news"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/earthquake_in_lincolnshire"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/fedora_43_is_out"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/for_the_want_of_an_apostrophe"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_3.33_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_and_pipewire"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_broken"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_over_a_dodgy_network"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_random_music_selection_logic_bomb"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_version_3.32_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_version_3.34_released_early"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_version_3.35_released_early_again"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_version_3.36_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/giocoso_version_3.37_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/got_there_at_last"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/happy_new_year_2026"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/happy_st._britten_day"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/macos_woes_part_94"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/niente_version_4.04_released_on_time"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/niente_version_5.05_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/normal_service_has_been_resumed"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/normal_service_will_resume_in_3...2...1"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/poor_peter_grimes"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/rethinking_support"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/rvw_journal_now_out"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/semplice_version_2.12_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/semplice_version_2.13_released"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/something_new_is_coming"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/some_code_comments"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/state_of_play"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/the_problem_of_portability"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/the_problem_of_portability_part_2"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/this_is_pleasing"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/whisper_it_quietly"/>
                <rdf:li rdf:resource="https://www.bbritten.com/blog/with_apologies"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.bbritten.com/_media/wiki/dokuwiki.svg">
        <title>BBritten.com</title>
        <link>https://www.bbritten.com/</link>
        <url>https://www.bbritten.com/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://www.bbritten.com/blog/christmas_news">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T14:12:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>christmas_news</title>
        <link>https://www.bbritten.com/blog/christmas_news</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;christmas_news&quot;&gt;Christmas News&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/christmas2025.png&quot; class=&quot;media&quot; title=&quot;blog:christmas2025.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/christmas2025.png?w=220&amp;amp;tok=48b097&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;My apologies to readers for basically not having posted anything over the Christmas period and not even getting around to wishing anyone a Happy Christmas! &lt;img src=&quot;https://www.bbritten.com/lib/images/smileys/sad.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-(&quot; /&gt; The unfortunate truth was that I woke up on the morning of December 20th basically unable to move. I&amp;#039;ve no idea why, but perhaps I&amp;#039;d slept at an awkward angle or something: my neck would spasm in excruciating pain if I did so much as try to talk. Two days in bed, immobile, brought some relief… but the problem &lt;em&gt;still&lt;/em&gt; hasn&amp;#039;t entirely resolved itself a week and a bit later. I am at least moving around, able to cook the Christmas lunch and get plastered at the local watering hole, though: so things are looking up!
&lt;/p&gt;

&lt;p&gt;
A new version of Giocoso will probably be released on schedule sometime on December 31st, but my enforced bed-rest has meant less ability to code than I&amp;#039;d have liked, so I might push the release date back a day or two.
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s going to be an interesting release, though, because a long-standing speed/screen refresh issue has finally been resolved. The problem is that Giocoso draws its various screen elements at specific positions in the terminal by means of making calls to the external (i.e., non-Bash) &lt;strong&gt;tput&lt;/strong&gt; utility. It works fine… but every call-out to tput requires a context switch on the CPU and is thus relatively expensive in compute resources. On PCs with slightly under-powered CPUs (such as my Raspberry Pi 4 that I use as my music player, or the 2015 iMac I&amp;#039;m now using as my daily driver) the consequence was that every change of the terminal contents would produce notable “flashing” as the screen was laboriously re-drawn. It looked pretty ugly.
&lt;/p&gt;

&lt;p&gt;
And then I started watching &lt;a href=&quot;https://www.youtube.com/@yousuckatprogramming&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://www.youtube.com/@yousuckatprogramming&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Dave Eddy&amp;#039;s YouTube channel&lt;/a&gt;! The man is a wicked genius at Bash scripting (and other stuff, but his Bash skills are extraordinary) and in his &lt;a href=&quot;https://youtu.be/7vbm_FevezM?si=bOtM11mSX3zg-_OD&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://youtu.be/7vbm_FevezM?si=bOtM11mSX3zg-_OD&quot; rel=&quot;ugc nofollow noopener&quot;&gt;latest Christmas video&lt;/a&gt;, specifically around the 32 minutes mark, he happened to mention in passing that he&amp;#039;d written a purely-Bash implementation of much of the tput utility&amp;#039;s functionality. Since it&amp;#039;s all done within the same Bash session, there&amp;#039;s no CPU context switching and the functionality is thus implemented with much greater efficiency than before. His code was therefore swiftly copied and pasted into assorted parts of Giocoso… and the transformation has been immediately, obvious and impressive. The thing finally runs much more effectively and without the &amp;#039;flashing&amp;#039; during screen re-draws. It&amp;#039;s an amazing little tweak, for which I can&amp;#039;t thank Dave enough… though he &lt;em&gt;does&lt;/em&gt; get a formal copyright acknowledgement in the code comments inside giocoso3.sh!
&lt;/p&gt;

&lt;p&gt;
In the New Year, I&amp;#039;ll be busy editing my second edition of the &lt;a href=&quot;https://www.rvwsociety.com/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://www.rvwsociety.com/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Ralph Vaughan Williams Society&lt;/a&gt; Journal, due out before the end of February, so coding is likely to take a back seat during that period. The promised new version of Semplice that (mostly!) runs on macOS will thus have to wait until after that&amp;#039;s all done: maybe some time in March, then.
&lt;/p&gt;

&lt;p&gt;
By way of a bit of catch-up, I can&amp;#039;t help but report on this, which happened in November:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/hjratsnap.jpg&quot; class=&quot;media&quot; title=&quot;blog:hjratsnap.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/hjratsnap.jpg?w=650&amp;amp;tok=a332d5&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
That&amp;#039;s me, fourth from the right, looking directly at the camera, singing on the stage of the Snape Maltings Concert Hall! A lifetime&amp;#039;s dream come true, basically &lt;img src=&quot;https://www.bbritten.com/lib/images/smileys/smile.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-)&quot; /&gt; The occasion was a &amp;#039;Ceremony of Carols from Scratch&amp;#039;, wherein a complete bunch of amateurs came together to sight-read and rehearse Benjamin Britten&amp;#039;s great work from the 1940s, &lt;em&gt;A Ceremony of Carols&lt;/em&gt;, and then to give a performance later in the afternoon. I so rarely get to sing these days that the occasion would have been great fun even if it had taken place in someone&amp;#039;s backyard. To be able to do it on that particular concert platform, however: amazing!
&lt;/p&gt;

&lt;p&gt;
Now is also about the time that I do a &amp;#039;year in review&amp;#039; of my music playing. The &lt;a href=&quot;https://www.bbritten.com/current/chart&quot; class=&quot;wikilink1&quot; title=&quot;current:chart&quot; data-wiki-id=&quot;current:chart&quot;&gt;charts&lt;/a&gt; tell their own story: this year, I&amp;#039;ve played fewer recordings (by number) than in any year since 2018. That&amp;#039;s because, in my efforts to drive down the number of recordings in my collection that hadn&amp;#039;t been played at least once by Giocoso, I spent the first half of the year playing lengthy works by the likes of Wagner and Verdi. Few in number, but lengthy in terms of minutes of play-time: that&amp;#039;s why you&amp;#039;ll also see that the &amp;#039;Play Durations by Year&amp;#039; graph shows me playing 3,875+ hours of music this year …almost matching last year&amp;#039;s play durations and comfortably exceeding the duration of music listened to in any of the other previous four years. That many hours, by the way, equates to 161 days: I was basically listening to music for 44% of the year!
&lt;/p&gt;

&lt;p&gt;
My top composers this year have been (with hours of play-time shown next to each composer name):
&lt;/p&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Johann Sebastian Bach&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;526&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Richard Wagner&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;400&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ludwig van Beethoven&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;330&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;George Frideric Handel&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;314&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Giuseppe Verdi&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;271&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Wolfgang Amadeus Mozart&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;263&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Antonio Vivaldi&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;120&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Joseph Haydn&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;92&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Gioachino Rossini&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;81&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Benjamin Britten&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;54&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;4876-5116&amp;quot;} --&gt;
&lt;p&gt;
Britten squeaks into the list this year because of his November 22nd birthday… everyone else is there because of the &amp;#039;drive to play everything once&amp;#039; playing campaign. I have found, since that goal was achieved &lt;a href=&quot;https://www.bbritten.com/blog/got_there_at_last&quot; class=&quot;wikilink1&quot; title=&quot;blog:got_there_at_last&quot; data-wiki-id=&quot;blog:got_there_at_last&quot;&gt;on October 14th&lt;/a&gt;, that I&amp;#039;m now playing a huge number of different composers once more, which is much more pleasant. I have Giocoso set up to prevent a composer&amp;#039;s works being replayed more than once per month and to restrict play durations to less than 90 minutes: the number of variety of relatively short compositions played have therefore rocketed in the past three months, which has been a delight.
&lt;/p&gt;

&lt;p&gt;
Given the names in the &amp;#039;top composers of 2025&amp;#039; list, it shouldn&amp;#039;t be a surprise what were the most common &lt;em&gt;genres&lt;/em&gt; to be played this year (again, with hours played shown in the second column):
&lt;/p&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Opera&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;1388&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Oratorio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;466&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Symphonic&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;388&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Choral&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;351&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Keyboard&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;324&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Concerto&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;221&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Orchestral&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;151&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Chamber&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;80&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Quartet&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;58&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Film - Theatre - Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;53&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;5950-6107&amp;quot;} --&gt;
&lt;p&gt;
Most of that huge opera listening was thanks to just two lads from 1813: Wagner and Verdi. They&amp;#039;re going to be rare pleasures in 2026, given that the &lt;em&gt;need&lt;/em&gt; to play them at least once has now passed and the &lt;em&gt;desire&lt;/em&gt; to play them again is tempered by the realisation that you&amp;#039;re into a multi-hour-long bout of melodrama and emotional excess if you once start playing anything of theirs!
&lt;/p&gt;

&lt;p&gt;
Perhaps the biggest news from 2025 from the deepest recesses of musical Lincolnshire is that I have abandoned Linux as my daily driver and switched to, er, &amp;lt;cough&amp;gt; macOS. Yup: I don&amp;#039;t particularly &lt;em&gt;like&lt;/em&gt; Apple&amp;#039;s software, but their hardware is lovely and the retina screens from even a decade ago are pleasing to my ageing eyes. I&amp;#039;m really hoping that in the New Year I shall finally summon up the wherewithall to go purchase a modern Apple Silicon iMac from the Apple store in Cambridge. It will involve eye-watering amounts of cash… and I hate the built-in obsolescence timer that means anything you buy now will cease to receive official support in just a handful of years. I had been contemplating a move from Linux to BSD at some point: Linux developers have been doing weird things of late (Wayland, anyone?!) and though I&amp;#039;ve been using it exclusively since 2012, I&amp;#039;ve basically had enough of it. Apple&amp;#039;s macOS is essentially BSD under the hood, with a very weird userland on top of it! I can cope, I think. I just need the bank balance to expand to accommodate the new fashion!
&lt;/p&gt;

&lt;p&gt;
Anyway, that&amp;#039;s it from me for 2025: see you again soon in the New Year, I hope. Entirely incidentally, bonus points to anyone who can examine the thumbnail to this post and work out why AI is very artificial and definitely &lt;em&gt;not&lt;/em&gt; intelligent!!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/f/f557e92b5fca2fa5eed7cfbfb78d4eb5.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/earthquake_in_lincolnshire">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-27T17:25:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>earthquake_in_lincolnshire</title>
        <link>https://www.bbritten.com/blog/earthquake_in_lincolnshire</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;earthquake_in_lincolnshire&quot;&gt;Earthquake in Lincolnshire :-)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/shopping.jpg?w=220&amp;amp;tok=8f226f&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;It&amp;#039;s finally happened, though I think I swore for about 12 years that it never would: I&amp;#039;ve only gone and bought an iMac! &lt;img src=&quot;https://www.bbritten.com/lib/images/smileys/surprised.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-O&quot; /&gt; I got the 10-core green machine you see at the left: delivery Thursday, assuming we all survive the torrential rain that is threatening to drown all of us in the UK right now! I&amp;#039;ve been using my old 2015 iMac for a couple of months now and though I still find the operating system quirky as hell, it&amp;#039;s acceptable… and I still get to use all the open source software I got familiar with on Linux. It is, however, the first time I&amp;#039;ve changed operating systems since about 2010 (when I switched full-time from Windows to Linux, of assorted distro flavours), which is still a bit of a shock to the system! I&amp;#039;ve even gone and bought an old iPhone 12 (delivery tomorrow!): if one is going to jump down the rabbit hole, one might as well do it with both feet!
&lt;/p&gt;

&lt;p&gt;
I don&amp;#039;t know whether it&amp;#039;s sensible or not, but there it is: and it makes rather a difference to my software developments! Giocoso and Semplice will become Tier 1 support on macOS now, because I&amp;#039;ll finally have an Apple Silicon iMac and a current &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; to run things on, no Open Core Legacy Patcher required. Updates to the documentation for Giocoso and Semplice will come in due course.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;m not sure about Niente: I don&amp;#039;t run that on my desktop and it&amp;#039;s not really suitable for running on an interactive desktop in any case. It&amp;#039;s meant to chug away in the background, doing quite a lot of disk I/O and CPU computations: that&amp;#039;s the sort of thing best suited for servers and Apple don&amp;#039;t have a server product! We&amp;#039;ll see; but it&amp;#039;s certainly not a priority.
&lt;/p&gt;

&lt;p&gt;
Anyway: the world&amp;#039;s most passionate user of the command line interface is now a confirmed Mac-ite. Wish me luck!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/9/9b88c05dfcb8e80cfcd7720adc062bf2.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/fedora_43_is_out">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-19T15:43:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fedora_43_is_out</title>
        <link>https://www.bbritten.com/blog/fedora_43_is_out</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;fedora_43_is_out&quot;&gt;Fedora 43 is out&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_fedora43_2025-10-29_11_32_01.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_fedora43_2025-10-29_11_32_01.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_fedora43_2025-10-29_11_32_01.png?w=220&amp;amp;tok=5bbd36&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt; The thumbnail at the left shows a brand new installation of Fedora 43 Workstation running Giocoso in perfect fashion (and with no weird &lt;a href=&quot;https://www.bbritten.com/blog/giocoso_broken&quot; class=&quot;wikilink1&quot; title=&quot;blog:giocoso_broken&quot; data-wiki-id=&quot;blog:giocoso_broken&quot;&gt;lack-of-graphics&lt;/a&gt; problems!).
&lt;/p&gt;

&lt;p&gt;
I dislike the Fedora installation process: it assumes answers to questions it never prompts you for and it&amp;#039;s harder than it should be to over-ride those assumptions. For example, no power on Earth would ever persuade me to use the btrfs file system as my main file system but it&amp;#039;s Fedora&amp;#039;s default option for the root partition. Finding how to change things to use ext4 instead is much harder than it should be, requiring you to click on various unidentified sets of three dots (I believe the yoof call them &amp;#039;hamburger menus&amp;#039;) and then do an awful lot of manual finagling. Not my recommended operating system, then… but at least my software runs on it without drama!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/2/2643fdb717388a3ec0164fce1915411d.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/for_the_want_of_an_apostrophe">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-12T17:31:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>for_the_want_of_an_apostrophe</title>
        <link>https://www.bbritten.com/blog/for_the_want_of_an_apostrophe</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;punctuation_matters&quot;&gt;Punctuation Matters&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Punctuation Matters&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;punctuation_matters&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-34&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;naked_apostrophes&quot;&gt;Naked Apostrophes&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I have recently become somewhat embroiled in a bit of controversy over the correct form of possessive to use when dealing with singular nouns and names that end in single-s: I thought it might be worth documenting my viewpoint and the justification for it. First things first, then: in the 1970s my grammar school taught me a very simple, three-part rule:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Words ending in not-s (e.g., &lt;em&gt;bell&lt;/em&gt;) take apostrophe-s: &lt;em&gt;The bell&amp;#039;s chime was clear.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Words ending in double-s (e.g., &lt;em&gt;princess&lt;/em&gt; take apostrophe-s: &lt;em&gt;The princess&amp;#039;s dress was blue.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Words ending in single-s (e.g., &lt;em&gt;bus&lt;/em&gt;) take apostrophe only: &lt;em&gt;The bus&amp;#039; route was blocked.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
This is indeed coded into my music player Giocoso, with code I first wrote back in 2019:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# For apostrophes, if a word ends in single-s, add only an apostrophe. If it ends in ss or not in s at all, then it&amp;#039;s apostrophe+s.    
if [[ ! -z $displaycomp ]]; then   	 
    if [[ ${displaycomp: -2} == ss ]]; then
      displayapostrophe=&amp;quot;&amp;#039;s&amp;quot;
    elif [[ ${displaycomp: -1} == s ]]; then
      displayapostrophe=&amp;quot;&amp;#039;&amp;quot;
    else
      displayapostrophe=&amp;quot;&amp;#039;s&amp;quot;
    fi
  else
    displayapostrophe=&amp;quot;&amp;quot;      # If, for some reason, they are playing un-tagged FLACs directly, then we can&amp;#039;t be displaying this at all
  fi&lt;/pre&gt;

&lt;p&gt;
This code is why you&amp;#039;ll see this sort of thing when playing music with Giocoso:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.41.32.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_13.41.32.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.41.32.png?w=650&amp;amp;tok=d56ebb&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Or this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.43.01.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_13.43.01.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.43.01.png?w=650&amp;amp;tok=126629&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Arthur Bliss ends in double-s, so he gets an apostrophe-s, but Ralph Vaughan Williams ends in single-s, so he gets a naked apostrophe to indicate possession.
&lt;/p&gt;

&lt;p&gt;
It is possible, of course, that I was taught extremely badly back in the 1970s (and it&amp;#039;s also very likely that fashions have changed since those days). However, I checked what (vaguely) current authorities on the matter have to say.
&lt;/p&gt;

&lt;p&gt;
First, we have &lt;strong&gt;&lt;a href=&quot;https://books.google.co.uk/books?id=btb1AwAAQBAJ&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://books.google.co.uk/books?id=btb1AwAAQBAJ&quot; rel=&quot;ugc nofollow noopener&quot;&gt;New Hart&amp;#039;s Rules, OUP, 2014: The Oxford Style Guide, p.71&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.48.14.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_13.48.14.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_13.48.14.png?w=600&amp;amp;tok=8b629c&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
This is certainly more nuanced than the rule I was taught. Indeed, with the example given of “Lord Williams&amp;#039;s School” it appears to flat-out say my rule is simply wrong. Except that it does no such thing: if it gives the example of Nicholas&amp;#039; and Nicholas&amp;#039;s, it&amp;#039;s showing that either form is acceptable. I cannot see a meaningful difference between the name “Nicholas” and “Williams”: both are three-syllable names ending in single-s, so what applies to Nicholas should equally apply to Williams. The examples given are, in other words, merely pointing out that long, multi-syllable names ending in single-s can and cannot take a naked apostrophe ending. They specifically chose to say &lt;em&gt;Nicholas&amp;#039;&lt;/em&gt; was correct; they could equally well have said that &lt;em&gt;Williams&amp;#039;&lt;/em&gt; was acceptable on precisely the same logic… but I imagine space got the better of them! 
&lt;/p&gt;

&lt;p&gt;
We shouldn&amp;#039;t, in any case, look for a rule spelled out that simply mandates or forbids the naked apostrophe. The point is to demonstrate that a formidable authority on punctuation has just demonstrated that the naked apostrophe is acceptable “where an additional s would cause difficulty in pronunciation”. It is, in other words, more a matter of &amp;#039;internal voicing&amp;#039; that occurs when you read than a hard-and-fast rule-book approach.
&lt;/p&gt;

&lt;p&gt;
This well-known hospital would, for example, probably want to take issue with their advice on &amp;#039;personal names ending in s&amp;#039;:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/st-thomas.png&quot; class=&quot;media&quot; title=&quot;blog:st-thomas.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/st-thomas.png?w=650&amp;amp;tok=05df8f&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Anyway: the New Hart&amp;#039;s Rules &lt;em&gt;permits&lt;/em&gt; naked apostrophes for singular names that end in s. It doesn&amp;#039;t compel their use but it doesn&amp;#039;t ban them, either.
&lt;/p&gt;

&lt;p&gt;
My second authority is &lt;strong&gt;&lt;a href=&quot;https://goetheindia.wordpress.com/wp-content/uploads/2010/01/new-harts-rules.pdf&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://goetheindia.wordpress.com/wp-content/uploads/2010/01/new-harts-rules.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;The Oxford Guide to Style&lt;/a&gt;&lt;/strong&gt;, published in 2002. On page 113 we find:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.01.43.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_14.01.43.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.01.43.png?w=650&amp;amp;tok=515b98&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Almost all these examples (why syphillis should be unique, I have no idea!) support the idea that words ending in single-s get a naked apostrophe when forming the possessive. More importantly, however, is the statement that there is no hard-and-fast rule but that “euphony is the overriding concern”, again making the point that it is the pleasing nature of your &amp;#039;inner voice&amp;#039; as you read that determines whether a naked apostrophe is acceptable or not.
&lt;/p&gt;

&lt;p&gt;
Which brings me to &lt;em&gt;my&lt;/em&gt; inner voice, I guess! When I read of “Vaughan Williams&amp;#039; symphonies”, I do &lt;em&gt;not&lt;/em&gt; pronounce it in my head  (and never have) as “Vaughan Williamz-iz symphonies”. The extra syllable is, for me, redundant. I &lt;em&gt;hear&lt;/em&gt; it as simply “Vaughan Williams Symphonies”, with the middle word pronounced as three syllables, not four. I am not claiming that other people &lt;em&gt;don&amp;#039;t&lt;/em&gt; &amp;#039;hear&amp;#039; it with the extra “-iz”: if they wish to type “Vaughan Williams&amp;#039;s symphonies”, they&amp;#039;re not &lt;em&gt;wrong&lt;/em&gt; to do so, if that&amp;#039;s how their &amp;#039;inner voice&amp;#039; works. Whatever is euphonious to someone is correct: &lt;em&gt;I&lt;/em&gt; just happen to find the extra syllable jarring and ugly.
&lt;/p&gt;

&lt;p&gt;
It is probably fair to say that I am somewhat old-fashioned in this, however: it&amp;#039;s quite difficult to find, quickly, examples of modern literature that do it &amp;#039;my way&amp;#039;. I can always find plenty of examples from the past that agree with me, of course:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;A dog—old Carlo, &lt;strong&gt;Mr. Rivers’ pointer&lt;/strong&gt;, as I saw in a moment—was pushing the gate with his nose, and St. John himself leant upon it with folded arms; his brow knit, his gaze, grave almost to displeasure, fixed on me. I asked him to come in.&lt;/em&gt; (Charlotte Brontë, Jane Eyre (1847), Chapter 31) &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;“I am an archer of &lt;strong&gt;my lord Douglas’ outer guard&lt;/strong&gt;. I can have no promotion save from him or those of his house — not even from the King himself.”&lt;/em&gt; (S.R. Crockett, The Black Douglas (1899), Chapter VIII)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Somewhat more modern, though:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;A cloud began to cover the sun slowly, wholly, shadowing the bay in deeper green. It lay beneath him, a bowl of bitter waters. &lt;strong&gt;Fergus’ song&lt;/strong&gt;: I sang it alone in the house, holding down the long dark chords.&lt;/em&gt; (James Joyce, Ulysses (1921), Chapter 1)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
This time, something a little more specifically relevant to music and to Vaughan Williams specifically:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;I can think of the complete Matthew Passion, &lt;strong&gt;Brahms’ Requiem&lt;/strong&gt;, and works like Parry&amp;#039;s Job and &lt;strong&gt;Vaughan Williams’ Sea Symphony&lt;/strong&gt;…&lt;/em&gt; (Adrian Boult, My Own Trumpet, 1973, Page 51)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;April 1935 saw the first performance of &lt;strong&gt;Vaughan Williams’&lt;/strong&gt; F minor Symphony…&lt;/em&gt; (Adrian Boult, My Own Trumpet, 1973, Page 106)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;&lt;strong&gt;Vaughan Williams’&lt;/strong&gt;&lt;/em&gt; Job &lt;em&gt;made a deep impression, helped perhaps by my idea of putting up some large cards with numbers, which showed the nine scenes, so that the audience could follow dramatically as well as musically.&lt;/em&gt; (Adrian Boult, My Own Trumpet, 1973, Page 138)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
And finally, something equally relevant to music, but from Benjamin Britten:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;…you know how I dislike conducting. But because of &lt;strong&gt;Krips’&lt;/strong&gt; sudden defaulting I had to take on Budd…&lt;/em&gt; (Reed, Cooke &amp;amp; Mitchell, Letters from a Life, Volume 4, Page 42, quoting Britten letter 728 written March 1952).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Anyway: my point remains, there&amp;#039;s ample support for using the naked apostrophe on names ending in single-s, in both grammatical authority and literature, including literature that is specifically musically- and Vaughan Williams-related. It&amp;#039;s not a requirement, but a personal preference, depending on one&amp;#039;s sense of &amp;#039;euphony&amp;#039;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Naked Apostrophes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;naked_apostrophes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;35-7549&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;commas&quot;&gt;Commas&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
While we&amp;#039;re on punctuation matters, I&amp;#039;d also like to throw this in:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.29.27.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_14.29.27.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.29.27.png?w=650&amp;amp;tok=2facf4&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
That&amp;#039;s from the same Oxford Style Guide (2002) as before, this time page 117. It again acknowledges that there is no single, hard-and-fast rule on the acceptable use of the comma: it is a matter of fashion as much as anything and &amp;#039;best comma practice&amp;#039; is a moveable feast. My own personal approach to them, again taught back in the 1970s, is to never use them before conjunctions and to avoid excessive &amp;#039;slow down&amp;#039; commas — that is, commas whose function is to exhibit the &lt;em&gt;writer&amp;#039;s&lt;/em&gt; sense of pacing and breath-drawing which may not match my own. Generally, I prefer to let the &lt;em&gt;reader&lt;/em&gt; parse things as they wish or need… but again: it&amp;#039;s all to do with &amp;#039;inner voicing&amp;#039; as one reads, not blind application of a simplistic grammar rule.
&lt;/p&gt;

&lt;p&gt;
Lest I be accused of selective quoting, let me make it clear that the Oxford Style Guide goes on to recommend the use of commas before conjunctions:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.36.45.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_14.36.45.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.36.45.png?w=650&amp;amp;tok=99756f&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
My reaction to that is that it&amp;#039;s an awfully convoluted rule to state and difficult to apply: you have to assess whether main clauses are &amp;#039;semantically related&amp;#039;, &amp;#039;grammatically similar&amp;#039; and &amp;#039;too long&amp;#039;, which is an incredibly subjective thing to determine, I would say. Of the first three examples shown, with commas, I would dispose of the comma in the first two. The third one (“I will not try now, yet it is possible…”) I think is just ugly writing. I would re-write it to be “I will not try now. It is possible I may try again in future”. The second set of three examples are, I think, how I would generally try to write: I wouldn&amp;#039;t reserve that comma-less approach for just &amp;#039;short and closely linked&amp;#039; clauses. Interesting that the last example cited is practically a verbatim re-write of the third but without the comma: I think it proves that the comma in that third example is really unnecessary and thereby demonstrating that comma usage is a matter of taste as much as anything else.
&lt;/p&gt;

&lt;p&gt;
It has been said to me directly that commas are necessary to structure a complex sentence properly. They may well be: but my response to that assertion was and remains that you shouldn&amp;#039;t be writing sentences so complex that their meaning necessitates numerous commas in the first place. At best, they will make your prose slower to read; at worst, they will not resolve ambiguities that your convoluted prose wraps in a tangle of clauses and sub-clauses. Epithetically: write more simply; need fewer commas.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Commas&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;commas&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;7550-10159&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;the_oxford_comma&quot;&gt;The Oxford Comma&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Of course, the Oxford Style Guide is going to recommend the use of the Oxford Comma (or &amp;#039;serial comma&amp;#039; as it&amp;#039;s sometimes called), too:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.42.31.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-10_at_14.42.31.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-10_at_14.42.31.png?w=650&amp;amp;tok=331afc&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I cannot stand the Oxford Comma: for me and my &amp;#039;inner voice&amp;#039;, the presence of that last comma in the list just enforces a pause that is completely unnecessary: there&amp;#039;s nothing wrong with &amp;#039;urban, squat and packed with guile&amp;#039;. There&amp;#039;s no ambiguity about what&amp;#039;s meant and I&amp;#039;d much prefer to get on to the end of the sentence than have a visual instruction to halt momentarily for no good reason. Putting it bluntly, I find the Oxford Comma slows down reading by introducing visual clues to pause for no good reason.
&lt;/p&gt;

&lt;p&gt;
Sometimes, removing the comma &lt;em&gt;would&lt;/em&gt; give rise to confusion. A dedication of a book that read &lt;strong&gt;To my parents, Mother Teresa and the pope&lt;/strong&gt; certainly suggests that the author has two illustrious parents, neither of whom should really be having children at all, let alone together! The suggestion is that re-writing that as &lt;strong&gt;To my parents, Mother Teresa, and the pope&lt;/strong&gt; makes it clear that three separate dedicatees are intended. I don&amp;#039;t &lt;em&gt;completely&lt;/em&gt; buy that argument but I can certainly agree that the slight, momentary pause introduced before the Pope is mentioned helps makes it a &lt;em class=&quot;u&quot;&gt;little&lt;/em&gt; less problematic. My personal preference would be to re-phrase the dedication completely, however (for example: &lt;strong&gt;To my parents, to Mother Teresa and to the Pope&lt;/strong&gt;).
&lt;/p&gt;

&lt;p&gt;
In the general case, removing an Oxford Comma may need a sentence to be lightly re-worded to make it retain sense and specificity. I think writing is clearer (and more euphonious) when the Oxford Comma is disposed of and I rather suspect that&amp;#039;s why the in-house style guides of both &lt;em&gt;The Times&lt;/em&gt; newspaper and the &lt;em&gt;The Economist&lt;/em&gt; magazine say not to use it. Plenty of other style guides &lt;strong&gt;do&lt;/strong&gt; recommend it, of course: I&amp;#039;m not suggesting otherwise. I &lt;em&gt;am&lt;/em&gt; suggesting merely that it is as &lt;em&gt;valid&lt;/em&gt; to dispense with it as to retain it.
&lt;/p&gt;

&lt;p&gt;
In conclusion, therefore: naked apostrophes, comma abuse in general and the use of the Oxford Comma specifically are matters of taste and &amp;#039;inner ear&amp;#039;, not ones of rule-book rigour. I do not, in other words, claim that, “I am right” but merely assert that, “I am not wrong”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The Oxford Comma&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_oxford_comma&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;10160-&amp;quot;} --&gt;
&lt;!-- cachefile /var/www/dokuwiki/data/cache/d/dda39f8774c113726d014a8bf2362d23.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_3.33_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-01T17:07:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_3.33_released</title>
        <link>https://www.bbritten.com/blog/giocoso_3.33_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_333_released&quot;&gt;Giocoso 3.33 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/wiki/giocosoico.png?w=220&amp;amp;tok=f62f3b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I&amp;#039;ve just released version 3.33 of Giocoso, a day later than planned …but a day earlier than feared!
&lt;/p&gt;

&lt;p&gt;
Upgrades are via the usual path: &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt;.
After the update completes, quit Giocoso and re-launch it to have the new features picked up and applied. Ignore any errors that may be displayed on program exit: they&amp;#039;re expected!
&lt;/p&gt;

&lt;p&gt;
Key new features, in no particular order:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Album Art captions are now scaled and sized more appropriately, to better deal with high-resolution monitors&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Various improvements to make things work better on macOS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The program logo now displays correctly again&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Timebars are no longer limited to 999 hours: they are now unlimited&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MacOS now can do Giocoso Pro properly, given that ancient macOS versions will tend to install ancient versions of the MariaDB client, which need special measures to deal with the existence or non-existence of ssl connection issues&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MacOS mouse gestures would screw up the Giocoso program display: they no longer do so&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Full details, as ever, in &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/changelog&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:changelog&quot; data-wiki-id=&quot;softwares:giocoso:changelog&quot;&gt;the Changelog&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Again: a happy new year to all Giocoso users!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/d/d15db88fb862bece081963ddfffaa28e.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_and_pipewire">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-12T09:19:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_and_pipewire</title>
        <link>https://www.bbritten.com/blog/giocoso_and_pipewire</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_and_pipewire&quot;&gt;Giocoso and Pipewire&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
The Linux audio stack is a convoluted mess! 
&lt;/p&gt;

&lt;p&gt;
In the beginning, Linux used &lt;abbr title=&quot;Open Source Software&quot;&gt;OSS&lt;/abbr&gt; (the Open Sound System). This was replaced in the late 1990s by ALSA, the Advanced Linux Sound Architecture. ALSA is a kernel-level sound architecture that has no support for mixing multiple audio streams (so two programs cann&amp;#039;t play simultaneously and one would block the other: some of us think this is what playing classical music &lt;em&gt;ought&lt;/em&gt; to be like!) and no per-application volume control, because the kernel doesn&amp;#039;t concern itself with the details as to what programs users might be running.
&lt;/p&gt;

&lt;p&gt;
Along came PulseAudio, in the mid-2000s. It provided a wrapper around ALSA that allowed multiple programs to sound simultaneously and provided per-application volume control. It also added network audio streaming. By sitting on top of ALSA, however, PulseAudio added complexity to the sound stack and made working out why sound didn&amp;#039;t work properly more complex, not less. It also was a high-latency layer, that made real-time audio tricky and started to fail, with jitter and dropouts, when the CPU was stressed enough.
&lt;/p&gt;

&lt;p&gt;
So finally, in around 2015, PipeWire was invented. It &lt;em&gt;replaces&lt;/em&gt; PulseAudio with a lower-latency and better real-time performance that&amp;#039;s more immune to CPU load than PulseAudio ever was. PipeWire still sits on top of ALSA (ALSA is the kernel-level audio stuff, so both PulseAudio and PipeWire are the user-layer interface to ALSA). Amusingly, PipeWire runs a PulseAudio compatibility layer, so applications designed to run with PulseAudio can (allegedly) work seamlessly with PipeWire. I say &amp;#039;amusingly&amp;#039; with venom because it now means you run an application and you haven&amp;#039;t necessarily got a clue &lt;em&gt;how&lt;/em&gt; it&amp;#039;s talking to ALSA: it might be using the PulseAudio interface, or the PipeWire. Everything still works either way, so you&amp;#039;re left a bit in the dark!
&lt;/p&gt;

&lt;p&gt;
My music player PC (an ancient Mac Mini) runs Linux Mint. Linux Mint switched to using PipeWire as the default audio interface in the Wilma release (which is approximately late last year). I hadn&amp;#039;t been aware of any of that… until I did a big software update the other day and things got “interesting”!
&lt;/p&gt;

&lt;p&gt;
The issue is Giocoso&amp;#039;s pause/resume functionality. Giocoso tells the process running the ffmpeg audio stream handler either to pause itself or resume itself. Under PulseAudio (or direct ALSA) doing this is not a problem: neither cared if the process was frozen or not, so resuming a frozen playback was without drama.
&lt;/p&gt;

&lt;p&gt;
But PipeWire seeks to be modern and more efficient… which, of course, means it messes with the tried and true! When it detects that audio process has stalled, it suspends audio nodes to save power, marks the stream node as inactive &lt;em&gt;and all its resources are freed&lt;/em&gt;. This poses a problem on playback resumption: the audio buffer behind the paused process will have been cleared, meaning that when the audio stream is resumed, it does so with invalid timestamps… and that manifests itself in garbled or &amp;#039;scratchy&amp;#039; sound.
&lt;/p&gt;

&lt;p&gt;
So guess what happened to my Giocoso setup after I foolishly subjected the Mac Mini in question to a recent software update? Pausing playback worked fine, but resuming it sounded like a Dalek with laryngitis had entered the room. Or maybe a Dalek attempting to sing &lt;em&gt;Tristan und Isolde&lt;/em&gt; from the bottom of a swimming pool. It wasn&amp;#039;t pleasant, put it that way.
&lt;/p&gt;

&lt;p&gt;
Basically, the punchline is this: &lt;strong&gt;if your Linux distro uses PipeWire as its default audio stream handler, Giocoso&amp;#039;s Pause/Resume is probably broken&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
There is allegedly a fix. If you are able to tell PipeWire, “Do not treat a suspended audio device as being dead”, then the auto-cleanup of resources doesn&amp;#039;t take place and the resumption of the playback &lt;em&gt;should&lt;/em&gt; work as it used to. To do that, you need to create a new file:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;~/.config/pipewire/pipewire.conf.d/99-nosuspend.conf&lt;/pre&gt;

&lt;p&gt;
In that file, you type the following:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;context.properties = {
  suspend-timeout-seconds = 0
}&lt;/pre&gt;

&lt;p&gt;
Finally, you re-start PipeWire to get the new setting picked up and applied:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;systemctl --user restart pipewire&lt;/pre&gt;

&lt;p&gt;
Once these textual fixes are in-place, you&amp;#039;ll find that Giocoso pauses and resumes cleanly once more.
&lt;/p&gt;

&lt;p&gt;
This will be a problem for many modern Linux distros, because they&amp;#039;ve all been switching over to PipeWire by default quietly in recent months. The same fix should apply to them all. A new release of Giocoso will eventually be produced that applies this fix automatically, if PipeWire is detected on your system… but for now, the fix has to be applied manually.  
&lt;/p&gt;

&lt;p&gt;
My apologies for any inconvenience: this is what happens when the technological rug is tugged from underneath one! Giocoso development is, frankly, just a question of keeping up with what other Linux developers are… er, breaking! 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update 1:&lt;/strong&gt; It turns out that this “fix” doesn&amp;#039;t really work very reliably. Fiddling with the PipeWire suspend timeout doesn&amp;#039;t appear to have fixed the garbled sound problem if the music playback is paused for a very long time (such as overnight): the resumed playback &lt;em&gt;still&lt;/em&gt; sounds awful in that case. I shall attempt to get Giocoso working on different hardware to see if that resolves the issue, though why hardware which worked fine at the beginning of the week suddenly decides to misbehave after a &lt;em&gt;software&lt;/em&gt; update is a bit of a mystery!
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update 2:&lt;/strong&gt; Well, after much fiddling with other hardware, I ended up issuing the following commands on the original PC:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;systemctl --user --now disable pipewire pipewire-pulse wireplumber
systemctl --user mask pipewire pipewire-pulse wireplumber&lt;/pre&gt;

&lt;p&gt;
…to stop and disable pipewire. Then I issued this command:  
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt remove --purge pipewire pipewire-audio-client-libraries wireplumber&lt;/pre&gt;

&lt;p&gt;
…to remove pipewire and PulseAudio from the Linux Mint 22 system completely. That means this PC is now going to be using ALSA directly (which Giocoso is happy doing). Finally, I issued this command:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-mark hold pulseaudio pipewire&lt;/pre&gt;

&lt;p&gt;
…to prevent Linux Mint “accidentally” re-installing either PulseAudio or PipeWire. A reboot followed at this point and, once the PC was back up, I issued the command:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;aplay /usr/share/sounds/alsa/Front_Center.wav&lt;/pre&gt;

&lt;p&gt;
…to &lt;em&gt;directly&lt;/em&gt; play some sound… and heard everything just fine. The command:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;aplay -l&lt;/pre&gt;

&lt;p&gt;
…reassured me that the operating system could still see and enumerate audio devices correctly:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  **** List of PLAYBACK Hardware Devices ****
  card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 1: PCH [HDA Intel PCH], device 0: CS4208 Analog [CS4208 Analog]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 1: PCH [HDA Intel PCH], device 1: CS4208 Digital [CS4208 Digital]
    Subdevices: 0/1
    Subdevice #0: subdevice #0&lt;/pre&gt;

&lt;p&gt;
I was thus able to configure Giocoso to use the “plughw:1,1” device (the digital, optical output) and music playback was fine. I then paused a piece of music in mid-play overnight. On waking, music playback &lt;strong&gt;&lt;em&gt;was&lt;/em&gt;&lt;/strong&gt; able to be resumed without any garbling or distortion.
&lt;/p&gt;

&lt;p&gt;
The short take on this is, therefore, that Giocoso works fine with PipeWire so long as you don&amp;#039;t pause or resume; that it works fine with PipeWire for short pauses and resumes if you set the suspend-timeout-seconds parameter; but that it does not work at all well with PipeWire if you intend to pause for lengthy periods (say, a half hour or more). My advice is therefore to run Giocoso on systems that do not have PipeWire installed at all (such as Alpine Linux); to remove it if it &lt;em&gt;is&lt;/em&gt; installed; and to avoid even PulseAudio unless you intend to route Giocoso&amp;#039;s playback over your home network. Use ALSA directly, as Giocoso was always intended to do, basically.
&lt;/p&gt;

&lt;p&gt;
It is &lt;em&gt;possible&lt;/em&gt; that I shall nevertheless re-write Giocoso&amp;#039;s pause/resume functionality to avoid stopping and resuming audio playback at the per-process level. Giocoso already has a pause/resume functionality that involves launching a completely new playback process when music playback is resumed: the Giocoso Pro &amp;#039;Global Resume&amp;#039; functionality. If that were employed as the sole pause/resume functionality, the garbled sound issue would be resolved even in the presence of PipeWire. It&amp;#039;s a lot of work, however, and I wouldn&amp;#039;t hold my breath!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/b/b5eede9ec2b943913c98ac55e399372a.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_broken">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-24T13:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_broken</title>
        <link>https://www.bbritten.com/blog/giocoso_broken</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_broken&quot;&gt;Giocoso Broken!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_132639.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_132639.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_132639.jpg?w=220&amp;amp;tok=1740c9&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;Click on the thumbnail to this post and see if you can see a bit of a problem!
&lt;/p&gt;

&lt;p&gt;
In one window, on the left, you see Giocoso running as it&amp;#039;s supposed to: displaying album art within its terminal session. In the window on the right, however, you see Giocoso playing music just fine… but there&amp;#039;s no album art on display.
&lt;/p&gt;

&lt;p&gt;
Giocoso has always displayed its album art by using a technology called “sixel graphics”. Terminals that support sixel graphics can display an image &lt;em&gt;within&lt;/em&gt; the terminal by using a command such as: &lt;span class=&quot;wrap_inlinecode &quot;&gt;img2sixel albumart.jpg&lt;/span&gt;. Konsole, the KDE terminal I&amp;#039;m using on the right of that thumbnail has always supported doing this, which is just as well as it&amp;#039;s the terminal I use daily to develop Giocoso in the first place! Unfortunately, as that screenshot tells you, Konsole has &lt;strong&gt;stopped&lt;/strong&gt; doing this for mysterious reasons that I can&amp;#039;t fathom. It now means that Giocoso run on any version of KDE within a Konsole window is at risk of not being able to display album art graphics sometime in the near future. The specific version of Konsole that appears to have developed this problem is &lt;strong&gt;version 25.08.2&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Since my desktop PC runs on EndeavourOS (a bleeding-edge distro based on Arch Linux), it&amp;#039;s software stack is forever being updated: it&amp;#039;s picked up the new version of Konsole and has lost the ability it once had to display in-terminal album art. My music playing PC (the one that&amp;#039;s plugged into the amplifier and speakers) is running Debian 13, a much more sedate (some would call it old-fashioned!) distro that is running version 24ish of Konsole. Clearly, the Konsole developers nixed sixel graphics sometime in the last year: I&amp;#039;m not holding my breath for them to un-nix any time soon, sadly.
&lt;/p&gt;

&lt;p&gt;
There are alternative terminal emulators, of course: xterm, for one. Unfortunately, they need to be compiled with sixel graphics support and &lt;em&gt;none&lt;/em&gt; of the many terminals I&amp;#039;ve tried on EndeavourOS display sixel graphics properly:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_142518.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_142518.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_142518.jpg?w=650&amp;amp;tok=d56ca3&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
That&amp;#039;s xterm &lt;strong&gt;not&lt;/strong&gt; displaying a JPG file. It&amp;#039;s true for uxterm, too; for ghosty; for mintty; darktile, gnome-terminal and any other terminal emulator you might suggest, at least on EndeavourOS (and Arch or Arch-derived distros in general: I found Manjaro to be similarly affected). 
&lt;/p&gt;

&lt;p&gt;
The only exception is a terminal emulator called &lt;strong&gt;kitty&lt;/strong&gt;, which doesn&amp;#039;t use sixel graphics at all, but its own unique way of doing in-terminal graphics which continues to work in every environment I tested:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140111.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_140111.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140111.jpg?w=650&amp;amp;tok=f3f2ad&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Unfortunately, you can see that kitty displaying anything requires some quite new syntax… and positioning the graphics display is nowhere near as easy to do as with sixel graphics. I&amp;#039;m also reluctant to make Giocoso dependent on a specific terminal emulator. So, this is not a road I&amp;#039;m keen to journey down.
&lt;/p&gt;

&lt;p&gt;
Of course, Giocoso already has a workaround:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140554.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_140554.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140554.jpg?w=650&amp;amp;tok=e88757&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You&amp;#039;ve always been able to configure Giocoso to display the album art in its own separate pop-out window, which is nowhere near as elegant but continues to work fine, even on Arch-based distros:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140732.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_140732.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_140732.jpg?w=650&amp;amp;tok=5e087e&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
For now, my understanding is that this is the &lt;em&gt;only&lt;/em&gt; way to get album art displayed correctly on a fully-updated Arch-based distro. More worryingly, as other distros upgrade their KDE environments, I suspect they will lose the ability to do in-terminal graphics display, too. There&amp;#039;s nothing much I can do about that, I&amp;#039;m afraid, though I am on a kitty learning curve as we speak.
&lt;/p&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;&lt;strong&gt;Edited to add:&lt;/strong&gt;&lt;/em&gt; I have swiftly realised that the kitty terminal emulator is just a special example of a terminal that understands the kitty graphics protocol. Other browsers can understand that protocol too, so it&amp;#039;s easy (even on an Arch-based distro!) to get Konsole or other browsers to display images using it:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_142323.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251024_142323.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251024_142323.jpg?w=650&amp;amp;tok=74b3b3&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The title bar tells you this is Konsole… but it&amp;#039;s still displaying a piece of albumart anyway! So this is definitely a route I will have to travel in the near future, I think!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/8/84d5b82193257ec0cb4ed32cf8e7ce97.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_over_a_dodgy_network">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-10T18:19:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_over_a_dodgy_network</title>
        <link>https://www.bbritten.com/blog/giocoso_over_a_dodgy_network</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_over_a_dodgy_network&quot;&gt;Giocoso over a dodgy network&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I recently had trouble talking from me desktop PC to my music-playing PC, running Giocoso. I&amp;#039;d launch a remote ssh session to the player PC, kick off some music playback …and the ssh connection would die, stopping the music playback as it did so. Very annoying if, say, you&amp;#039;d played 1.75 hours of a 2 hour opera: when the ssh session dies, the partial play is essentially regarded as never having happened, so you have to start from scratch next time you connect.
&lt;/p&gt;

&lt;p&gt;
My first thought on fixing this was: screen. It&amp;#039;s a utility you launch on the music-playing PC immediately after you&amp;#039;ve ssh&amp;#039;d into it from the desktop PC, and then within screen, you can launch Giocoso. If the ssh connection dies between desktop and player PCs, screen and anything launched from within it continues to run regardless. Brilliant! But, unfortunately, this is what launching Giocoso inside screen looks like:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_140532.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251009_140532.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_140532.jpg?w=650&amp;amp;tok=74353a&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Complete gibberish, of course! I mean, you can &lt;em&gt;just about&lt;/em&gt; make out menu options and navigation aids and the thing will actually play music.. but it&amp;#039;s obviously not ideal! It &lt;em&gt;probably&lt;/em&gt; has something to do with the way Screen handles terminal emulation: I did try fiddling with the value of the TERM environment variable before launching Giocoso, but it really didn&amp;#039;t make any difference.
&lt;/p&gt;

&lt;p&gt;
So my second thought was &lt;strong&gt;tmux&lt;/strong&gt;, which does the same sort of thing as Screen: provide an environment in which programs can be launched such that, should the network die, the running program &lt;em&gt;doesn&amp;#039;t&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
So I tweaked my desktop PC&amp;#039;s launcher for &amp;#039;remote Giocoso&amp;#039;. It&amp;#039;s application remained unchanged from before:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/usr/bin/uxterm&lt;/pre&gt;

&lt;p&gt;
…that is, everything continues to run inside a local session of the &amp;#039;uxterm&amp;#039; console program. What&amp;#039;s different is the “arguments” that you pass to that uxterm session as it begins. Mine used to read:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;-T &amp;#039;Giocoso - A Digital Music Player&amp;#039; -xrm &amp;#039;xterm*iconHint: /home/hjr/.local/share/giocoso3/art/giocosoico.xpm&amp;#039; -bg black -fg green -geometry 103x28+0+0 -fa &amp;#039;Luxi Mono:style=Regular&amp;#039; -fs 12 -ti 340 -tn xterm-256color -e &amp;#039;trap &amp;quot;&amp;quot; HUP; ssh -Y -t hjr@192.168.137.34 /usr/bin/giocoso3.sh&amp;#039;&lt;/pre&gt;

&lt;p&gt;
…which is “give the terminal a name and a thumbnail icon, set it to be black with green text, make it 103 columns wide and 28 rows high, positioning it in the top left of my desktop PC&amp;#039;s monitor; set the font to something nice, and then ssh over to the music-player PC and launch Giocoso”. Looks messy, but it worked (or did if the network stayed up)!
&lt;/p&gt;

&lt;p&gt;
The new “arguments” however now read as follows:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;-T &amp;#039;Giocoso - A Digital Music Player&amp;#039; -xrm &amp;#039;xterm*iconHint: /home/hjr/.local/share/giocoso3/art/giocosoico.xpm&amp;#039; -bg black -fg green -geometry 103x28+0+0 -fa &amp;#039;Luxi Mono:style=Regular&amp;#039; -fs 12 -ti 340 -tn xterm-256color -e &amp;quot;ssh -Y -t hjr@192.168.137.34 \&amp;quot;tmux new-session -A -s giocoso &amp;#039;/usr/bin/giocoso3.sh&amp;#039;\&amp;quot;&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Most of that starts off exactly as it used to. The new feature is that having ssh&amp;#039;d to the remote PC, it &lt;em&gt;doesn&amp;#039;t&lt;/em&gt; directly launch Giocoso, but launches tmux and creates a new session (called &amp;#039;giocoso&amp;#039;) and, within that session, runs the giocoso3.sh executable. This appears on my desktop PC almost exactly the same as it used to… except that I can now physically close the Giocoso window, thereby manually terminating the ssh session… and the music previously playing will &lt;em&gt;continue&lt;/em&gt; playing without interruption. If my network dies of its own accord, the player PC will similarly continue playing without a murmur. Especially nice is that if I &lt;em&gt;re-launch&lt;/em&gt; Giocoso on my desktop, it will automatically re-connect to the remote tmux session and display it exactly where I left it, album art and all.
&lt;/p&gt;

&lt;p&gt;
The only slight fly in the ointment is that, by default, tmux likes to display a status bar at the bottom of the terminal window it&amp;#039;s running in:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_142042.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251009_142042.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_142042.jpg?w=650&amp;amp;tok=190648&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
That glowing green bar at the bottom of the screen rather throws off my geometry calculations: Giocoso needs to run in a 103&amp;times;28 terminal window… but if one of the vertical lines is taken up by tmux&amp;#039;s status bar, Giocoso gets muddled:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_142245.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251009_142245.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_142245.jpg?w=650&amp;amp;tok=106fc4&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
None of the lines actually appear where they should and text over-writes them in places. The fix for this is relatively straightforward. One possible fix is to retain the status bar and just amend the “arguments” for my launcher to launch at 103&amp;times;2*9* rather than 103&amp;times;28. That&amp;#039;s a client-side fix, of course. The fix I decided to adopt is a server-side one: on the remote PC, I create the file &lt;span class=&quot;wrap_inlinecode &quot;&gt;$HOME/.tmux.conf&lt;/span&gt; and type the following code into it:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;set -g status off&lt;/pre&gt;

&lt;p&gt;
Once a new tmux session starts, it picks up this new setting… and the result is:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_214811.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251009_214811.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251009_214811.jpg?w=650&amp;amp;tok=bdcfc7&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The title bar of that terminal tells you that the session is running tmux… but now there&amp;#039;s no bright green bar at the bottom of the screen. The status bar is off!
&lt;/p&gt;

&lt;p&gt;
All of which means that no matter how dodgy my network connection to different parts of my home might be, I can be confident that Giocoso will play things through to completion, every time: no more getting 4.5 hours through Götterdämmerung and then having the rug pulled out from under me yet again! A future Giocoso installer &lt;em&gt;may&lt;/em&gt; implement this tmux configuration tweak directly, though I haven&amp;#039;t decided on it yet. Obviously: it only affects people who use Giocoso via a network/ssh connection, so it is maybe a bit niche to start making sweeping configuration changes to other programs at this point!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/c/cbe3ed869ee17c7c126857abbdc4f218.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_random_music_selection_logic_bomb">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-25T09:18:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_random_music_selection_logic_bomb</title>
        <link>https://www.bbritten.com/blog/giocoso_random_music_selection_logic_bomb</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_random_music_selection_logic_bomb&quot;&gt;Giocoso Random Music Selection Logic Bomb&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/atombang.jpg?w=220&amp;amp;tok=6f9f8f&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;Imagine I have 100 recordings by Benjamin Britten, of all sorts of durations, from 2-minute long songs to 3-hour long operas. Imagine, too, that I have asked to select 10 recordings by Britten, that last between 20 and 40 minutes, but only the first of the 10 should actually be picked to be played for some reason.
&lt;/p&gt;

&lt;p&gt;
What Giocoso used to do was take the 100 recordings and randomly “rank” them: that is, it would assign a system-generated number to each one, starting at 1 and finishing at 100. Then it would grab the recordings with the first 10 ranking numbers (i.e., items 1 to 10), since that’s what I’d asked for it to select. Finally, it would assess those 10 recordings for their duration and make sure they fit between 20 and 40 minutes.
&lt;/p&gt;

&lt;p&gt;
Here, for example, is the first pass: randomly select 10 recordings by Britten and rank them:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.07.27.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_09.07.27.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.07.27.png?w=600&amp;amp;tok=b6f8a3&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Now we apply the “between 20 and 40 minutes” filter:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.10.09.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_09.10.09.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.10.09.png?w=600&amp;amp;tok=e58648&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Only three recordings now match all our selection requirements.
&lt;/p&gt;

&lt;p&gt;
Except there was one &lt;em&gt;other&lt;/em&gt; requirement which makes things even worse: from the possible play candidates, play only one. The way Giocoso did that was to say “where rank = 1”… and I hope you can see that I won’t be playing &lt;em&gt;anything&lt;/em&gt; by Benjamin Britten, because his ‘rank=1’ item is one of the forbidden recordings (forbidden by its long duration). The Cello Symphony &lt;em&gt;could&lt;/em&gt; be played on duration grounds, but because it was &lt;strong&gt;already&lt;/strong&gt; assigned a rank of ‘3’, the ‘rank=1’ selection test renders it ineligible for play.
&lt;/p&gt;

&lt;p&gt;
This is how Giocoso has been selecting music for a long while now… and it’s logically flawed. It certainly “worked” with a sufficiently large music collection with sufficiently high numbers of different composers and with sufficiently lax duration requirements: but it ranked first and filtered second… and doing things that way round means that lots of &lt;strong&gt;eligible&lt;/strong&gt; recordings (say, Britten’s &lt;em&gt;Cello Symphony&lt;/em&gt; or &lt;em&gt;Violin Concerto&lt;/em&gt; from the above example) would &lt;strong&gt;not&lt;/strong&gt; get selected, because they happened to be assigned the wrong, not-1, ranking number early on.
&lt;/p&gt;

&lt;p&gt;
The logically correct way of doing things is to filter first and rank second. If I had done that, I would have struck out all the red items in the last table for duration reasons and that would have left this selection of three candidate recordings:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.11.42.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_09.11.42.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.11.42.png?w=600&amp;amp;tok=b9be96&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Only &lt;em&gt;now&lt;/em&gt; do I assign a ranking:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.11.52.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_09.11.52.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.11.52.png?w=600&amp;amp;tok=53d97f&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
When I finally add in the “rank = 1” selection restriction: lo and behold, my next cycle of 10 plays &lt;strong&gt;will&lt;/strong&gt; include the &lt;em&gt;Cello Symphony&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
By assigning rank early, I make it highly improbable I’ll find a recording to play (it is pot-luck if a duration-qualified recording might get assigned a rank of ‘1’); by assigning it late, assuming &lt;em&gt;any&lt;/em&gt; recordings meet the duration requirement, I’m absolutely guaranteed to pick one of them when I add the ‘rank=1’ restriction.
&lt;/p&gt;

&lt;p&gt;
I mention this now because I’ve fixed it in the forthcoming release of Giocoso 3.37. That release (I’m tentatively aiming for the very end of March) re-orders the selection and ranking operations, with the result that it’s now much easier for recordings that qualify on duration or other configured selection criteria to make it through to being played, without being artificially disqualified on the grounds that their randomly-assigned rank number is ‘wrong’! Instead of seeing lots of this screen:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_08.58.07.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_08.58.07.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_08.58.07.png?w=600&amp;amp;tok=a9a7db&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
…you&amp;#039;ll see much more of this sort of screen:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.13.37.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-25_at_09.13.37.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-25_at_09.13.37.png?w=600&amp;amp;tok=ff05cc&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Giocoso music playback is, in short, now much more likely to play a diverse mix of works by multiple composers than before, whilst still holding fast to the ‘one composer per cycle of plays’ principle. I&amp;#039;m only sorry it took me this long to work out why I was having quite so many of the &amp;#039;no music to play&amp;#039; screens before!
&lt;/p&gt;

&lt;p&gt;
I’ll announce the next release here when it happens, of course: right now, I’m giving it multiple days of testing to ensure the logic is now &lt;em&gt;really&lt;/em&gt; where I need it to be!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/e/e0ba5576b1380af99b8cfd410944a4f6.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_version_3.32_released">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-12T20:18:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_version_3.32_released</title>
        <link>https://www.bbritten.com/blog/giocoso_version_3.32_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_version_332_released&quot;&gt;Giocoso Version 3.32 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/softwares/giocoso/playmenu/beethoven2.png?w=220&amp;amp;tok=740aee&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;A day later than anticipated, I&amp;#039;ve just released Giocoso Version 3.32. It contains some significant new features, including support for Kitty graphics for terminals that can&amp;#039;t display album artwork using sixel graphics; a terrible logic bomb I created back in 3.30 affecting the way the time bar worked that is now fixed; a new installer that looks better and performs more efficiently; and support (somewhat rudimentary!) for running on macOS.
&lt;/p&gt;

&lt;p&gt;
Administration Menu Option 1 should get you the update, without major issue.
&lt;/p&gt;

&lt;p&gt;
Edited to add: documentation is progressing well, with new pages regarding &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/win11&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:win11&quot; data-wiki-id=&quot;softwares:giocoso:win11&quot;&gt;installation on Windows 11&lt;/a&gt; now nearly complete.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/6/69cabe498b418a19635bd9d2c5b21035.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_version_3.34_released_early">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-08T12:35:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_version_3.34_released_early</title>
        <link>https://www.bbritten.com/blog/giocoso_version_3.34_released_early</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_version_334_released_early&quot;&gt;Giocoso Version 3.34 Released (Early!!)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/software/giocoso/beethoven98.png&quot; class=&quot;media&quot; title=&quot;software:giocoso:beethoven98.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/software/giocoso/beethoven98.png?w=220&amp;amp;tok=6afaea&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;I&amp;#039;ve just released a new version of Giocoso, Version 3.34: that&amp;#039;s about 20 days earlier than planned, as a result of testing and dog-fooding having gone so well.
&lt;/p&gt;

&lt;p&gt;
The big new feature is, I think, support for ReplayGain: if you enable the feature using the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 2&lt;/strong&gt; you&amp;#039;ll see the following new option:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-02-08_at_12.26.29.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-02-08_at_12.26.29.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-02-08_at_12.26.29.png?w=650&amp;amp;tok=64dc96&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
It is set to &amp;#039;no&amp;#039; by default, but if you set it to &amp;#039;yes&amp;#039; and then play some music for which ReplayGain metadata tags have been computed and written, Giocoso will apply the necessary volume boost in real time, dynamically. It&amp;#039;s a feature that music players like Foobar2000 have had for years: it was about time Giocoso caught up!
&lt;/p&gt;

&lt;p&gt;
The program interface has had a bit of a makeover, too:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-02-08_at_12.28.32.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-02-08_at_12.28.32.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-02-08_at_12.28.32.png?w=650&amp;amp;tok=91e139&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You&amp;#039;ll note the ReplayGain information is now displayed (it says &amp;#039;None&amp;#039; if you haven&amp;#039;t switched on the new feature, or if your music files don&amp;#039;t contain ReplayGain information tags) and that techy details have been &amp;#039;ruled off&amp;#039; from the composer-composition-performer details. A minor &amp;#039;touch up&amp;#039; to the look and feel, but I think it looks a bit tidier.
&lt;/p&gt;

&lt;p&gt;
There are several other key new features, some of them quite important: read &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/changelog&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:changelog&quot; data-wiki-id=&quot;softwares:giocoso:changelog&quot;&gt;the Changelog&lt;/a&gt; for details, as usual.
&lt;/p&gt;

&lt;p&gt;
Buried amongst references to bug fixes and enhancements is the over-riding truth that quite a lot of work has gone into refining the running of Giocoso on macOS, especially new, Apple Silicon macOS using Homebrew. Previously, much of my Apple work was done on older, Intel-based Macs that installed software dependencies via MacPorts. The two package managers work rather differently and pull down rather different software for the same package name, unfortunately! Anyway: that&amp;#039;s going to be an on-going process, now that I&amp;#039;ve switched to macOS full-time, but things already work smoothly for me now.
&lt;/p&gt;

&lt;p&gt;
Upgrading to the new release is accomplished in the usual way: take the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt; and follow the prompt to supply your sudo password. Once the update has completed, quit Giocoso completely (ignoring any error messages you might see on the way out) and then re-launch the program from scratch.
&lt;/p&gt;

&lt;p&gt;
Have fun!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/a/a9d7160edc1978c75fc6f26c6f576430.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_version_3.35_released_early_again">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-22T14:01:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_version_3.35_released_early_again</title>
        <link>https://www.bbritten.com/blog/giocoso_version_3.35_released_early_again</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_version_335_released_early_again&quot;&gt;Giocoso Version 3.35 Released (Early again!!)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/wiki/giocosoico.png?w=220&amp;amp;tok=f62f3b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I have just released Giocoso Version 3.35, a few days earlier than planned. It is a decently-significant release, in that it contains more bug fixes for running on macOS and a completely new reporting infrastructure: instead of attempting to display data within the confines of a size-restricted terminal, all Giocoso reports now open in a browser. By default, your system&amp;#039;s default browser will be used, but a new configuration parameter allows you to specify any already-installed web browser instead:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/software/giocoso/screenshot_2026-02-14_at_20.52.36.png&quot; class=&quot;media&quot; title=&quot;software:giocoso:screenshot_2026-02-14_at_20.52.36.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/software/giocoso/screenshot_2026-02-14_at_20.52.36.png?w=600&amp;amp;tok=6be671&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In addition, a new report and selection filter allows you to see who your &amp;#039;rarely-performed&amp;#039; composers are: that is, composers who haven&amp;#039;t had anything played within the past 120 days. The selection filter is configurable (so you could declare &amp;#039;not played within 82 days&amp;#039; to be &amp;#039;rarely-performed&amp;#039;) but the report is not.
&lt;/p&gt;

&lt;p&gt;
Anyway: full details as ever are over in the &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/changelog&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:changelog&quot; data-wiki-id=&quot;softwares:giocoso:changelog&quot;&gt;changelog&lt;/a&gt;. Upgrading is the usual business of using the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 2&lt;/strong&gt; and following the prompts. For assorted reasons that needn&amp;#039;t detain us, you may be told at the end of the upgrade process that &amp;#039;something went wrong&amp;#039;: ignore that, quit Giocoso (ignoring any error messages that might appear on the way out) and then re-launch the program. A second attempt at an upgrade should give you a message along the lines of &amp;#039;you&amp;#039;re all good: nothing needs updating&amp;#039;, at which point you&amp;#039;re good to use the program as normal.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/f/ff8670cbc9111d3ddf4bc196638e9705.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_version_3.36_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-18T12:36:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_version_3.36_released</title>
        <link>https://www.bbritten.com/blog/giocoso_version_3.36_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_version_336_released&quot;&gt;Giocoso Version 3.36 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/wiki/giocosoico.png?w=220&amp;amp;tok=f62f3b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I have just released a new version of Giocoso: version 3.36. Full details are, as ever, in the relevant &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/changelog&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:changelog&quot; data-wiki-id=&quot;softwares:giocoso:changelog&quot;&gt;Changelog&lt;/a&gt;. Key takeaways, however, are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Better handling of PulseAudio from within the program, rather than relying on environment variables&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The introduction of &lt;strong&gt;minig&lt;/strong&gt;: a way of launching a minimal Giocoso interface that can initiate playback or control existing playback from the sort of small, portrait-oriented terminal you&amp;#039;d likely get on a mobile phone (basically replacing mgiocoso, though that still exists for now, too)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The usual array of bug fixes, including one that means Giocoso is not flummoxed by decimal separators that are &lt;em&gt;not&lt;/em&gt; the usual &amp;#039;.&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; A new program logo that now works better with non-black terminal colour schemes:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-18_at_12.32.57.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-18_at_12.32.57.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-18_at_12.32.57.png?w=600&amp;amp;tok=f16a08&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Updating is accomplished in the usual way: take the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt;, supply the sudo password when prompted and sit back and let it happen. Quit Giocoso when the update completes, ignoring any error messages that might appear on the way out. Re-launch the program and enjoy!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/1/189ced45c8191663a30cd9946216c0b4.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/giocoso_version_3.37_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-01T09:04:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>giocoso_version_3.37_released</title>
        <link>https://www.bbritten.com/blog/giocoso_version_3.37_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;giocoso_version_337_released&quot;&gt;Giocoso Version 3.37 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/software/giocoso/giocosoico.png?w=220&amp;amp;tok=fb0892&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I have just released (on time!) a new version of Giocoso: it now moves to version 3.37. It is a fairly significant release for one main reason: the default music search algorithm had a fatal bug in it, which I discussed at length in &lt;a href=&quot;https://www.bbritten.com/blog/giocoso_random_music_selection_logic_bomb&quot; class=&quot;wikilink1&quot; title=&quot;blog:giocoso_random_music_selection_logic_bomb&quot; data-wiki-id=&quot;blog:giocoso_random_music_selection_logic_bomb&quot;&gt;a previous blog piece&lt;/a&gt;. This release fixes that logic error, resulting in much more music qualifying for randomised selection than before.
&lt;/p&gt;

&lt;p&gt;
A less meaningful (but perhaps more fun!) enhancement to the program is that you can now adjust its visual components&amp;#039; colours. If you don&amp;#039;t like the default cyan logo text, you can change it to magenta instead, for example. I noticed that some users don&amp;#039;t run in jet-black terminal sessions like I do: this lets them make Giocoso usable even in light-coloured terminals.
&lt;/p&gt;

&lt;p&gt;
I regret that this update is a bit messy to implement. You should certainly start by taking the usual &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt; to obtain the newer software and providing the sudo password when prompted. Unfortunately, the result of that upgrade will look something like this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-31_at_09.00.57.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-31_at_09.00.57.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-31_at_09.00.57.png?w=600&amp;amp;tok=aec594&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Error messages visible from the operating system, a Beethoven image appearing in completely the wrong place, all text one colour and the wrong colour at that… yuck! Fortunately, it&amp;#039;s easily fixable: just take the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 2&lt;/strong&gt; to edit the configuration file. Just click the [OK] button to cycle through all the pages of the dialog. When you click [OK] on the last of the pages, you&amp;#039;ll be returned to the main menu with everything looking perfect:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-31_at_09.12.32.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-31_at_09.12.32.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-31_at_09.12.32.png?w=600&amp;amp;tok=1e6085&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;em class=&quot;u&quot;&gt;Added immediately after the release:&lt;/em&gt;&lt;/strong&gt; It is &lt;em&gt;possible&lt;/em&gt; that you now &lt;strong&gt;won&amp;#039;t&lt;/strong&gt; see visual mayhem on quite this scale after an update: a couple of tweaks to some code has tackled most of these issues out-of-the-box, I believe. But it does no harm to warn you of what &lt;em&gt;can&lt;/em&gt; happen and how to fix it, especially as even now, I&amp;#039;m pretty sure you&amp;#039;ll be needing to adjust the size of that Beethoven logo: which &lt;em&gt;still&lt;/em&gt; requires a visit to the Administration menu, Option 2 and an adjustment to the &amp;#039;Size of the Program Logo&amp;#039; setting.
&lt;/p&gt;

&lt;p&gt;
The temporary problem is caused by your existing configuration file not having the new colour codes in it: merely editing the file and doing nothing causes &lt;em&gt;default&lt;/em&gt; codes to be added to the file, after which the program displays normally. You could then use the new &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 8&lt;/strong&gt; to modify the program colour settings to something that is non-default and more suitable to your needs.
&lt;/p&gt;

&lt;p&gt;
Full details about what&amp;#039;s in the new release are available, as always, from &lt;a href=&quot;https://www.bbritten.com/softwares/giocoso/changelog&quot; class=&quot;wikilink1&quot; title=&quot;softwares:giocoso:changelog&quot; data-wiki-id=&quot;softwares:giocoso:changelog&quot;&gt;the Giocoso changelog&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
That concludes the bug-fixes and tweaks to all three of my music-related bits of software: I rather suspect that they will all now &amp;#039;go quiet&amp;#039; for a good few month, unless someone gets in touch to report a bug or two that I haven&amp;#039;t encountered! Here&amp;#039;s to a less code-filled few months!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/2/2b5fe566e6769901b66fa08310078f0f.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/got_there_at_last">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-14T08:55:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>got_there_at_last</title>
        <link>https://www.bbritten.com/blog/got_there_at_last</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;got_there_at_last&quot;&gt;Got there, at last!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251013_202338.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251013_202338.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251013_202338.jpg?w=220&amp;amp;tok=7e805a&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;The screenshot at the left tells you that, after about 5 or 6 years of working towards it, I&amp;#039;ve finally achieved my goal of having listened to every recording in my collection, with Giocoso, at least once.
&lt;/p&gt;

&lt;p&gt;
The last few recordings were dealt with much faster than I&amp;#039;d anticipated, in fact.
&lt;/p&gt;

&lt;p&gt;
So what&amp;#039;s next? Well, basically… to immediately screw up the statistics by adding a bunch of new recordings to which to listen! There&amp;#039;s 758GB of ripped music sitting on my hard disk that needs classifying, cataloguing and adding to the collection. That&amp;#039;s approximately 1,895 new CDs-worth of music. It will be added in small increments, though, with listening to the new additions being worked into randomised re-listening of existing music, so the &amp;#039;percentage unplayed&amp;#039; should never rise significantly. (Famous last words!)
&lt;/p&gt;

&lt;p&gt;
Progress on switching things over to bbritten.com continues, if not exactly at pace then at least with slow determination!
&lt;/p&gt;

&lt;p&gt;
I also have to apologise to visitors again, today, for a network outage that made the site unavailable for around a couple of hours. Not my fault, this time, but &lt;a href=&quot;https://www.theregister.com/2025/10/13/vodafone_outage/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://www.theregister.com/2025/10/13/vodafone_outage/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;my ISP&amp;#039;s (though we don&amp;#039;t yet know the details)&lt;/a&gt;. That&amp;#039;s the third outage since the end of August, one due to the network infrastructure, one due to a widespread network outage and now one due to an ISP&amp;#039;s apparent inability to configure itself properly. Very annoying… but they each gave me more time to listen to music, so it&amp;#039;s all good in the end, I guess!
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_20251014_095411.jpg&quot; class=&quot;media&quot; title=&quot;blog:screenshot_20251014_095411.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_20251014_095411.jpg?w=650&amp;amp;tok=28932c&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;650&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/c/c07f46554deede209a206786c7cb7402.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/happy_new_year_2026">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-31T18:46:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>happy_new_year_2026</title>
        <link>https://www.bbritten.com/blog/happy_new_year_2026</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;happy_new_year_2026&quot;&gt;Happy New Year, 2026&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/happynewyear2026.png&quot; class=&quot;media&quot; title=&quot;blog:happynewyear2026.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/happynewyear2026.png?w=220&amp;amp;tok=dd9283&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;A short note to wish all my readers, regulars and just-passing alike, a very happy 2026. I shall likely be off-line for much of January and early-to-mid-February, given my editing responsibilities for the Ralph Vaughan Williams Society&amp;#039;s Journal, but I hope to keep the software coming nonetheless.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/2/261813d2752674deccbf05a5d208869b.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/happy_st._britten_day">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-21T15:53:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>happy_st._britten_day</title>
        <link>https://www.bbritten.com/blog/happy_st._britten_day</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;happy_st_britten_day&quot;&gt;Happy St. Britten Day!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/bbritten.jpg?w=220&amp;amp;tok=4f2946&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;Tomorrow being St. Britten&amp;#039;s Day (well, OK: it&amp;#039;s actually &lt;a href=&quot;https://en.wikipedia.org/wiki/Saint_Cecilia&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://en.wikipedia.org/wiki/Saint_Cecilia&quot; rel=&quot;ugc nofollow noopener&quot;&gt;St. Cecilia&amp;#039;s Day&lt;/a&gt;, patron saint of music, but it also happens to be the birthday of the chief of her sons, the blessed Benjamin Britten, who you might have noticed is a sort-of patron saint around here!), I shall wish you all a happy Benjamin Britten Day and encourage you to play nothing but the great BB for the day.
&lt;/p&gt;

&lt;p&gt;
I shall be telling Giocoso to do precisely that (and, in truth, have already started, for a couple of days now, as my &lt;a href=&quot;https://www.bbritten.com/listen/playhistory&quot; class=&quot;wikilink1&quot; title=&quot;listen:playhistory&quot; data-wiki-id=&quot;listen:playhistory&quot;&gt;play history&lt;/a&gt; might tell you!) and I think you&amp;#039;d find it rewarding too.
&lt;/p&gt;

&lt;p&gt;
But, seriously: listen to any good music you care about. 
As Wystan Auden once put it: Blessed Cecilia, appear in visions to all musicians: appear and &lt;em&gt;inspire&lt;/em&gt;!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/d/d905cf6cfea7293ec73767c8cff25770.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/macos_woes_part_94">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-23T18:46:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>macos_woes_part_94</title>
        <link>https://www.bbritten.com/blog/macos_woes_part_94</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;macos_woes_part_94&quot;&gt;MacOS Woes (part #94)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/00c8-500x500.png?w=220&amp;amp;tok=aee8dd&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I&amp;#039;m two months into my &amp;#039;exciting&amp;#039; adventure with macOS! For the most part, it&amp;#039;s been fine, even if the windows handling is primitive and its privacy/security settings can seem a bit over-eager at times. Today, however, I got really cheesed off! The problem is a big one for fans of classical music who are forever having to tag things with ß, ä or è characters. Like me who, yesterday, finally got around to cataloguing a performance of Ernest Chausson&amp;#039;s &lt;em&gt;Poème&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
The first issue is how you type foreign characters on an iMac at all: it has its own native way of doing it (for example, holding down the &amp;#039;e&amp;#039; key will, in most situations, produce a pop-up from which you can select the appropriately-accented version), but that doesn&amp;#039;t work in Semplice because all you get by holding down the &amp;#039;e&amp;#039; key there is &amp;#039;eeeeeeeeeee&amp;#039;! Anyway, I sorted this out way back in January in a way documented (roughly) &lt;a href=&quot;https://www.bbritten.com/articles/macostweaks&quot; class=&quot;wikilink1&quot; title=&quot;articles:macostweaks&quot; data-wiki-id=&quot;articles:macostweaks&quot;&gt;here: see the section headed &amp;quot;Compose Key&amp;quot;&lt;/a&gt;. I can now type “poème” as I would have done on any Linux machine: tap right-command, press `, press e: job done!
&lt;/p&gt;

&lt;p&gt;
This morning, however, I played the piece I catalogued yesterday and saw this in Giocoso:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.18.32.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-23_at_13.18.32.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.18.32.png?w=600&amp;amp;tok=715442&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In case it&amp;#039;s not obvious, let me zoom in on the artwork display there:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.18.38.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-23_at_13.18.38.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.18.38.png?w=600&amp;amp;tok=fb3555&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Rather than “Poème”, we have Giocoso rendering things as “Poe me”: no accent, but an extra space. But look over on the left-hand side of the Giocoso display: there the work is rendered as “Poème” entirely correctly! And here&amp;#039;s the thing: both the artwork and the left-hand side text are &lt;em&gt;both&lt;/em&gt; being read from the &lt;em class=&quot;u&quot;&gt;same&lt;/em&gt; metadata tag (in this case, the ALBUM tag). So what&amp;#039;s going on?!
&lt;/p&gt;

&lt;p&gt;
The issue basically boils down to the fact that (unbeknownst to me!) there are actually &lt;strong&gt;two&lt;/strong&gt; Unicode renditions of any given character. We might call them “composed Unicode” and “decomposed Unicode”, because the point is that è can be represented as a &lt;em&gt;single&lt;/em&gt;, merged glyph or character, or as a combination of the separate “e” and “`” characters. Linux uses the “composed” version of accented characters… and, guess what?!, macOS uses the “decomposed” version. The net result is that, if you tag your music on macOS, you &lt;em&gt;think&lt;/em&gt; you&amp;#039;re typing a single, composed è, but macOS steps in and stores it as the decomposed “e+`” equivalent. Text applications tend to render either version identically (which is why the left-hand side of Giocoso gets it right), but ImageMagick, the graphical program that&amp;#039;s used to generate the artwork and captions for the right-hand side of Giocoso&amp;#039;s display, does not.
&lt;/p&gt;

&lt;p&gt;
What&amp;#039;s particularly annoying about this is that my Karabiner Elements keybindings explicitly produce &lt;em&gt;composed&lt;/em&gt; Unicode in the NFC form… yet macOS takes it upon itself to decompose the resulting character and store it in the decomposed, NFD form. It deliberately changes what you&amp;#039;ve typed in! And in a way you&amp;#039;d never know, because things like file systems display the results identically.
&lt;/p&gt;

&lt;p&gt;
Anyway, after some tweaking of the Semplice code and a bit of re-tagging, this was the result by this afternoon:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.22.30.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-23_at_13.22.30.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.22.30.png?w=600&amp;amp;tok=92af1e&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
And zooming in again for clarity:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.22.37.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-23_at_13.22.37.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-23_at_13.22.37.png?w=600&amp;amp;tok=e1588a&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The cost of this fix? It&amp;#039;s to make the &lt;strong&gt;uconv&lt;/strong&gt; utility a dependency of Semplice on macOS (it&amp;#039;s installed as a consequence of installing &lt;strong&gt;icu4c&lt;/strong&gt;, which is done with a &lt;strong&gt;brew install icu4c&lt;/strong&gt;). Semplice detects if you&amp;#039;re running on macOS and, if so, takes your input for composer, composition, performer name as well as all other textual tags and passes them through the uconv utility to explicitly (and, this time, successfully) turn them into the composed, NFC version of Unicode that Linux recognises and prefers. If that utility is &lt;em&gt;not&lt;/em&gt; present on your macOS then the conversion to composed Unicode doesn&amp;#039;t happen and you may end up having to deal with captioned album art with weird spaces in it in future!
&lt;/p&gt;

&lt;p&gt;
A new version of Semplice is imminent, but its release may have to be pushed back a little to ensure this latest cludge is working correctly! Watch this space, anyway. The new version will, of course, only affect fresh Semplice installations: if you&amp;#039;re already using Semplice on macOS you&amp;#039;ll &lt;strong&gt;need to install icu4c manually&lt;/strong&gt; and, in addition, you&amp;#039;ll need to make sure it gets into your PATH so that Semplice can find it when it needs to. Using Homebrew, the commands are:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;brew install icu4c
sudo ln -s /opt/homebrew/opt/icu4c@78/bin/uconv /opt/homebrew/bin/uconv&lt;/pre&gt;

&lt;p&gt;
If you&amp;#039;re using Macports, the equivalent command is:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo port install icu&lt;/pre&gt;

&lt;p&gt;
The “4c” part of the name is omitted and there&amp;#039;s no need to link anything when using Macports, as the install ends up going into your existing PATH anyway.
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s annoying that there is such a low-level discrepancy in the way macOS and Linux handles such a fundamental issue. I wasn&amp;#039;t aware of it earlier, simply because I hadn&amp;#039;t done a lot of tagging work on macOS that involved characters with accents and the like… but the minute I started, the problems erupted, too! Hopefully fixed, anyway.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/b/b8e4ac808e0023dfa0127f2ad0ef4290.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/niente_version_4.04_released_on_time">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-28T13:21:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>niente_version_4.04_released_on_time</title>
        <link>https://www.bbritten.com/blog/niente_version_4.04_released_on_time</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niente_version_404_released_on_time&quot;&gt;Niente Version 4.04 Released (On Time!!)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/softwares/niente/beethoven-inspecting7.png?w=220&amp;amp;tok=f1cb0b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;Completely on schedule, despite a migration of my website to a Proxmox-hosted LXC container and a whole new iMac purchased at the end of January (I trust I am impressing you!), I have today just released a new version of the Niente FLAC-checking program. It is the first new version since 10th April 2025, brings the version number up to 4.04 and is a fairly significant release for a number of reasons.
&lt;/p&gt;

&lt;p&gt;
Principle amongst these is the significant amount of code re-writing needed to make Niente a full first-class citizen on macOS, AlmaLinux 9 and AlmaLinux 10. This website&amp;#039;s own page of &lt;a href=&quot;https://www.bbritten.com/agstats/agstats&quot; class=&quot;wikilink1&quot; title=&quot;agstats:agstats&quot; data-wiki-id=&quot;agstats:agstats&quot;&gt;Niente statistics&lt;/a&gt; has been produced by macOS since about the 10th February; between December 2025 and the end of January 2026, they were coming out of AlmaLinux 9; and between February 1st and February 9th, they were the product of AlmaLinux 10. All three new operating systems have been tested pretty comprehensively, therefore.
&lt;/p&gt;

&lt;p&gt;
The other &lt;em&gt;huge&lt;/em&gt; new feature is a complete overhaul of Niente&amp;#039;s reporting mechanism. Niente is, fundamentally, a metadata collector and a report generator, so to have half its core functionality pretty much re-written from the ground up is fairly significant! All Niente reports have had their logic tweaked and refined… and every one now outputs to your system&amp;#039;s default &lt;em&gt;web browser&lt;/em&gt;. A new configuration option allows you to specify a &lt;strong&gt;specific&lt;/strong&gt; browser if you prefer, but if you leave it blank (which it is by default) whatever your default browser is will be used to display all reports.
&lt;/p&gt;

&lt;p&gt;
One final key new feature I should mention, too, is that Niente is now ReplayGain aware: its database table acquires a new column to store any ReplayGain_Album_Gain metadata tag values detected within a FLAC: if there is none, that results in a new item on the Aggregate Statistics report, counting the number of FLACs that &lt;em&gt;don&amp;#039;t&lt;/em&gt; have ReplayGain data. You might have no interest in ReplayGain, of course, in which case you can ignore the statistic: it&amp;#039;s listed as an “other” statistic and therefore not actually indicative of a physical or logical metadata problem.
&lt;/p&gt;

&lt;p&gt;
Full details, as ever, are in &lt;a href=&quot;https://www.bbritten.com/softwares/niente/nenchange&quot; class=&quot;wikilink1&quot; title=&quot;softwares:niente:nenchange&quot; data-wiki-id=&quot;softwares:niente:nenchange&quot;&gt;the Niente changelog&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Upgrading is a bit of an issue, this time round. The last version of Niente was released back in the day when the source of software updates was absolutelybaching.com. It is therefore unfortunately the case that attempting to use the usual &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 5&lt;/strong&gt; to update will not work, as the program will be attempting to obtain fresh software from the wrong source. To obtain the latest Version 4.04 software, therefore, the upgrade procedure is simply:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget software.bbritten.com/neninst
bash neninst&lt;/pre&gt;

&lt;p&gt;
…and follow the prompts. It&amp;#039;s basically a fresh installation from scratch and is likely to mean that you&amp;#039;ll need to perform a full database re-load (&lt;strong&gt;Database&lt;/strong&gt; menu, &lt;strong&gt;Option 2&lt;/strong&gt;) followed by a full integrity check (&lt;strong&gt;Integrity Checks&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt;). Apologies for this break in the usual upgrade process: the change of website between absolutelybaching and bbritten.com is the sort of one-off upheaval that has unintended consequences! It shouldn&amp;#039;t happen again.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/6/63ce0593e4189d7b1285913c12610df7.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/niente_version_5.05_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-29T13:09:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>niente_version_5.05_released</title>
        <link>https://www.bbritten.com/blog/niente_version_5.05_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niente_version_505_released&quot;&gt;Niente Version 5.05 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/softwares/niente/beethoven-inspecting7.png?w=220&amp;amp;tok=f1cb0b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I have just released (almost on-time!) the latest version of Niente: version 5.05. &lt;a href=&quot;https://www.bbritten.com/softwares/niente/nenchange&quot; class=&quot;wikilink1&quot; title=&quot;softwares:niente:nenchange&quot; data-wiki-id=&quot;softwares:niente:nenchange&quot;&gt;The changelog, as ever&lt;/a&gt;, has all the details, but the short version is that there was a fairly nasty bug concerning Niente and ReplayGain, which is now fixed; and there&amp;#039;s been a whole truck-load of flim-flammery concerning Niente&amp;#039;s visual appearance. The story there is, basically, to bring it in-line with how all my other software works (or is about to work): colour selection and a graphical logo.
&lt;/p&gt;

&lt;p&gt;
Unfortunately, these changes mean that the upgrade process is not as simple as using the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 5&lt;/strong&gt;. It&amp;#039;s a little bit more convoluted than that! Here goes:
&lt;/p&gt;

&lt;p&gt;
First, make a note of all your existing configuration settings. We&amp;#039;re going to wipe these shortly and you&amp;#039;ll need to be able to put them back later. So take a screenshot now of &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 5&lt;/strong&gt; and or otherwise note the contents of that configuration setting: we&amp;#039;re going to need to use that as a template later.
&lt;/p&gt;

&lt;p&gt;
Next, you need to ensure that both libsixel and kitty are installed, so that Niente can do its new &amp;#039;graphical logo thing&amp;#039;. How you do that depends on your distro:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fedora: sudo dnf install libsixel libsixel-utils kitty&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mint: sudo apt install libsixel-bin kitty&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AlmaLinux10: sudo dnf install kitty&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Suse: sudo zypper install libsixel1 libsixel-utils kitty&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Arch: sudo pacman -S kitty libsixel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debian/Raspbian: sudo apt install libsixel-bin kitty&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ubuntu: sudo apt install libsixel-bin kitty&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
I should explain that I cannot find a way to install sixel graphics support on AlmaLinux 9 or 10, so we don&amp;#039;t bother and instead install the Kitty terminal, which is a completely different ball-game that still manages to install support for doing in-terminal graphics. Note that this means either that 1) you can&amp;#039;t use &amp;#039;gnome terminal“ to run Niente going forward; or 2) if you insist on using gnome-terminal, you&amp;#039;re not going to see the &amp;#039;beethoven looking grumpy&amp;#039; logo.
&lt;/p&gt;

&lt;p&gt;
Anyway, once those new packages are installed, you fire up Niente and take the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 5: Check for software updates&lt;/strong&gt;. Follow the prompts and the upgrade process should complete without error… except that you&amp;#039;re very likely to see variations on this unholy mess at the end of it:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_16.45.41.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-28_at_16.45.41.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_16.45.41.png?w=600&amp;amp;tok=8ace60&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Don&amp;#039;t panic! At this point, exit Niente (tap &amp;#039;x&amp;#039;) and then issue this command:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;rm -f $HOME/.local/share/niente/txt/niente.conf&lt;/pre&gt;

&lt;p&gt;
That deletes your specific persistent configuration file, because the absence of such a file triggers Niente to create a &lt;em&gt;default&lt;/em&gt; one, containing all the new parameters that the new version expects to find. Of course, this also means that the new configuration file will be missing all the really important &lt;em&gt;personalised&lt;/em&gt; settings you may have set previously: that&amp;#039;s why you were told to make a note or screenshot of those existing settings before we started! You did do that, didn&amp;#039;t you?!
&lt;/p&gt;

&lt;p&gt;
Now you can re-launch Niente (on AlmaLinux, this &lt;em&gt;must&lt;/em&gt; be from within Kitty): you will likely be warned that your new, default configuration file mentions a database called “niente” (the default name), but that no such database exists:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_17.41.45.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-28_at_17.41.45.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_17.41.45.png?w=600&amp;amp;tok=386030&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Again, this is the consequence of having deleted your original configuration file. It&amp;#039;s expected, so click [OK] and Niente will launch in its new 4.05 guise. Immediately visit the &lt;strong&gt;Administration&lt;/strong&gt; menu and take the &lt;strong&gt;Edit Configuration File&lt;/strong&gt; option. Put back all the &amp;#039;correct&amp;#039; configuration file options you previously made a note of, such as the default database name. Make sure you add in values for &amp;#039;Preferred browser&amp;#039;, for example. If you are on AlmaLinux, you &lt;em&gt;must&lt;/em&gt; switch on “Use Kitty Graphics”: set it to a value of “yes”. Quit Niente once more and then immediately relaunch into it: you should now find that you&amp;#039;re viewing Niente correctly, with colour, and with a colourful logo in the left-hand pane:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_18.44.11.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-28_at_18.44.11.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_18.44.11.png?w=600&amp;amp;tok=1a3da0&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You may well notice, as in this screenshot, that the logo is &lt;em&gt;way&lt;/em&gt; too big and in completely the wrong place! Again, don&amp;#039;t panic: you have the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 1&lt;/strong&gt; to adjust the &amp;#039;Size of the Program Logo&amp;#039; and the “Program Logo position&amp;#039;. On my particular virtual machine, displaying on an iMac (so who knows what the right settings might be on real hardware?!), I found setting the logo size to “110” and the position to ”-5” to be ideal:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_18.46.17.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-28_at_18.46.17.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_18.46.17.png?w=600&amp;amp;tok=e82524&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Play around as you like… and then consider taking the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 6&lt;/strong&gt; to fiddle with the colour values associated with the various program display elements.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;m sorry the upgrade process is a bit more convoluted than normal this time around. If you prefer, you can simply re-install Niente from scratch:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wget software.bbritten.com/neninst
bash neninst&lt;/pre&gt;

&lt;p&gt;
A fresh install automatically installs the Kitty terminal and libsixel components needed to get that graphical logo displayed correctly. For a mere upgrade, you have to take care of those extra component requirements manually, I&amp;#039;m afraid. It is a once-off requirement! I did find that even on fresh installations, Niente would look ghastly until you had taken the Administration menu, Option 1 and pressed [Enter] to create a new persistent configuration file: it&amp;#039;s a quirk of the transition, sadly.
&lt;/p&gt;

&lt;p&gt;
Additionally, note that you &lt;em&gt;don&amp;#039;t&lt;/em&gt; have to run Niente with a graphical logo. If you would prefer to run Niente on AlmaLinux (for example) in the gnome-terminal, without switching on Kitty graphics, that will work just fine:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_20.15.18.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-28_at_20.15.18.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-28_at_20.15.18.png?w=600&amp;amp;tok=8e393d&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You just won&amp;#039;t see the &amp;#039;grumpy beethoven&amp;#039; icon on the right-hand side (which some might prefer, the Luddites!)
&lt;/p&gt;

&lt;p&gt;
Note that unmentioned in the changelog is a bunch of code tidying that is really rather important that you have: I can&amp;#039;t tell you the number of subtle code howlers I spotted whilst preparing this release! So I&amp;#039;d encourage you to upgrade, apologise again for the extra steps required, and assure you that nothing this big should happen again for quite a long time!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/3/3e2b80c42a743c5fc90438ceb461f6c1.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/normal_service_has_been_resumed">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-26T17:07:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>normal_service_has_been_resumed</title>
        <link>https://www.bbritten.com/blog/normal_service_has_been_resumed</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;normal_service_has_been_resumed&quot;&gt;Normal service has been resumed...&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/testcard_f.jpg&quot; class=&quot;media&quot; title=&quot;blog:testcard_f.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/testcard_f.jpg?w=220&amp;amp;tok=99d438&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;I had noticed that in recent days, this website had started to produce quite a few occasional &amp;#039;502: Bad Gateway&amp;#039; errors. This morning, it turned into a veritable flood, to the point where I literally could barely write anything without triggering one. I have accordingly spent a long 5+ hours trying to get things back on to an even keel, all ultimately without success. In a fit of desperation, I moved my entire website out of a Proxmox container and back onto physical hardware (albeit quite &lt;em&gt;slow&lt;/em&gt; physical hardware!) 
&lt;/p&gt;

&lt;p&gt;
I trust that if you&amp;#039;re reading this, it demonstrates that the move has achieved its goal of getting the site back online and in good order. My apologies for the outage. It does, unfortunately, mean that the raft of software updates I was planning for in the next day or two will have to be bumped back a bit (maybe a week).
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/7/75a47d789875f1e172d0eec84a04fa40.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/normal_service_will_resume_in_3...2...1">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-26T22:03:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>normal_service_will_resume_in_3...2...1</title>
        <link>https://www.bbritten.com/blog/normal_service_will_resume_in_3...2...1</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;normal_service_will_resume_in_321&quot;&gt;Normal Service will resume in 3...2...1...&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/roadworks.jpg?w=220&amp;amp;tok=37c07b&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/fingerscrossed.jpg?w=220&amp;amp;tok=925a05&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;My apologies for the fact that this site was down for most of yesterday. I was in the middle of a long-planned move of the site from a virtual machine to an LXC container, for efficiency reasons, when real life intervened and I had to leave the migration in mid-move. I &lt;em&gt;believe&lt;/em&gt; everything has been brought across now and normal service should have resumed, but see the picture at the right….
&lt;/p&gt;

&lt;p&gt;
Let me know if you spot any outstanding issues.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/a/a63bbc0ab6bf1c05d2d20fac478e29e3.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/poor_peter_grimes">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-10T18:46:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>poor_peter_grimes</title>
        <link>https://www.bbritten.com/blog/poor_peter_grimes</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;poor_peter_grimes&quot;&gt;Poor Peter Grimes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/petergrimes01.jpg&quot; class=&quot;media&quot; title=&quot;blog:petergrimes01.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/petergrimes01.jpg?w=220&amp;amp;tok=755f74&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;Last Friday, I had a great night out at Nottingham&amp;#039;s Theatre Royal to see a performance by Opera North of Benjamin Britten&amp;#039;s &lt;em&gt;Peter Grimes&lt;/em&gt;. Expectations were high: I don&amp;#039;t &lt;em&gt;think&lt;/em&gt; I&amp;#039;ve ever seen a whole performance of this opera live, though I definitely remember walking out of Jon Vickers&amp;#039; mangling of the role at a performance in Covent Garden sometime in the 1980s! Let me say at the outset that I enjoyed the evening, on the whole. The orchestra played wonderfully and the chorus sang vividly: no complaints there, at all. They were thrilling to hear. Balstrode and Swallow were sung magnificently; Ellen Orford was sung rather well; Bob Boles&amp;#039; was also a strong performance. Unfortunately, Auntie was sung by someone who simply couldn&amp;#039;t get down to the low alto notes and therefore was practically inaudible throughout. Peter Grimes was also not sung brilliantly: his Act 1 was fine. His mad scene was histrionic without emotion. And throughout, his top notes just weren&amp;#039;t really there. When your eponymous hero can&amp;#039;t quite sing the best parts of the role, you have a bit of a problem, I feel!
&lt;/p&gt;

&lt;p&gt;
All that said, the music wasn&amp;#039;t the main problem of the evening. That belongs with the director. The opera is supposed to open with a “bang!”: “Peter Grimes, Peter Grimes, we are here to investigate the cause of death of your apprentice, William Spode”. Straight in, no messing, scene set, backstory explained, all done within 20 seconds of the conductor raising his baton. What we got in Nottingham was some sort of “pantomime”, in which the curtain rose, silence descended and a torso wrapped in fishing nets was &amp;#039;discovered&amp;#039; by children scampering across the stage. Presumably, this was the body of William Spode: though I have to say it was an exceptionally well-developed torso of a thirty year-old, not exactly your weedy boy apprentice that William Spode is supposed to have been. Regardless of the incongruent torso&amp;#039;s physique, however, the point is: the opera doesn&amp;#039;t require a stupid pantomime to contextualise the rest of the action. That&amp;#039;s done for you in the first 18 words of the opera, blasted into the auditorium within seconds of the music starting. The pantomime was just the director trying, one presumes, to spoon-feed a context to an opera-illiterate audience. I didn&amp;#039;t appreciate it, shall we say?
&lt;/p&gt;

&lt;p&gt;
Worse, the ending: Peter Grimes is supposed to sail off until he loses sight of land, then sink his boat. The Borough&amp;#039;s population is then meant to get on with their lives, essentially as if nothing much had happened. Curtain down, cue the applause. What we got, instead, was the music ending but the cast staying on stage swaying ridiculously from side to side with a giant net (see the thumbnail above), which made &amp;#039;swooshing&amp;#039; sounds as it moved. This lasted an excruciating few minutes before the curtain finally descended and applause ensued. The swooshing sound was, of course, intended to sound like the sea (as some excited woman on the way out of the venue announced she had discerned). The trouble is that the sea is not meant to be a protagonist in the opera, with the last word. It&amp;#039;s a character, of course, with varying moods, from thundering storm to twinkling sunlight on glittering waves. But it isn&amp;#039;t the villain of the piece: that role is reserved to the people of the Borough whose conformity and resentfulness of difference and vision is what dooms Grimes. Theirs is supposed to be the last word: “Coastguard reports, there&amp;#039;s a boat sinking out at sea… I see nothing… Just one of these rumours… move on”. If you detract from that conclusion, you lose the whole point of the opera: of the visionary dreamer against a constrained, conventional society; of the outsider against the indifferent crowd. Opera North comprehensively missed the point: we don&amp;#039;t need nets sounding like the sea to conclude this opera. We just need the Borough to shrug its collective shoulders and get on with life, dismissive of the visionary it has just destroyed. The ending of the performance was as gormless as its opening, basically.
&lt;/p&gt;

&lt;p&gt;
Another annoyance, too: at the end of the opera, Balstrode gives advice to Grimes to take his boat out until he loses sight of land, then sink it (and himself) to oblivion. It is meant to be an act of kindness, even of love: to spare Peter from the wrath of the Borough and relieve him of his pain and torment. It is meant to be said kindly and gently. Our Balstrode, however, decided to turn tail, lose patience, metaphorically roll his eyes and clearly couldn&amp;#039;t wait to be rid of this Grimes fellow. Again, a total misreading of the opera, its meaning and intent.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/grimes02.jpg&quot; class=&quot;media&quot; title=&quot;blog:grimes02.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/grimes02.jpg?w=220&amp;amp;tok=6e5e9d&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;I didn&amp;#039;t like the staging much, either. When the libretto mentions “Grimes&amp;#039; hut”, you kind of expect “a hut”, not something that looked like a curtailed oil rig in the North Sea (see picture at the right). I&amp;#039;m prepared to suspend my disbelief quite willingly… but no man could live comfortably on a 12 foot square of timber in the upper atmosphere! Watching the new apprentice get hitched to a wire before falling off said platform was just excruciating. He&amp;#039;s meant to walk out of a hut, leave the door open… and then we hear him scream as he falls down the cliff &lt;em&gt;off-stage&lt;/em&gt;. There&amp;#039;s neither reason nor point in making the poor lad do a leap in the centre of the stage, even with a harness laboriously attached. It just looked stupid.
&lt;/p&gt;

&lt;p&gt;
I won&amp;#039;t mention (OK, I will) the fact that there are really two big emotional fulcrums in the piece: the clash between Grimes and Ellen outside the Church on Sunday, and Grimes&amp;#039; mad scene. Unfortunately, the Nottingham audience wasn&amp;#039;t playing ball for either key moment. During the outside-Church confrontation, a fellow in the rows behind me decided he was going to have some sort of epileptic fit. Which is absolutely fine: these things happen and my sympathies were definitely with him. Unfortunately, his fit took the form of rather loud and continuous moaning and instead of getting him out of the auditorium with all due haste and minimum fuss, this went on throughout the piece. Key moment #1 missed entirely. The lady in the row behind me then decided she would have a coughing fit throughout the Grimes mad scene. Again, I wouldn&amp;#039;t have minded so much, except that she apologised to everyone around her in a rather loud stage whisper. Which was, perhaps, considerate… except that she then chose to round things off by getting out the throat sweets and unwrapping them throughout what remained of the mad scene. Key moment #2 thereby ruined.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/theatre-royal-nottingham-view-from-stage.jpg&quot; class=&quot;media&quot; title=&quot;blog:theatre-royal-nottingham-view-from-stage.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/theatre-royal-nottingham-view-from-stage.jpg?w=220&amp;amp;tok=47a366&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;I lay those misadventures at the feet of the idiotic public, not those of Opera North, of course. But the ham-fisted production of this opera is all their own doing and the less-than-stellar performances of Grimes and Aunty are equally of their own creation. Full marks to the chorus and orchestra, however… and extra marks to the Theatre Royal: it&amp;#039;s a proper &amp;#039;traditional&amp;#039; opera house, in green and gold, in the raked-box style of La Scala and with a most impressive chandelier! I had no idea Nottingham was blessed with such a beauty (and I lived there for six years!).
&lt;/p&gt;

&lt;p&gt;
Overall, 7/10 for the orchestra, chorus and powerful Act 1. Points off for completely unnecessary and misguided prologue and epilogue &amp;#039;pantomimes&amp;#039;, the weak performances from two key singers and the (expected) dreadful behaviour of assorted members of the public. There are reasons I don&amp;#039;t go to live performances of opera very often: this outing reminded me of what they are.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/c/cf58da54b559d511a7f67ea3616e9927.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/rethinking_support">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-12T20:19:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rethinking_support</title>
        <link>https://www.bbritten.com/blog/rethinking_support</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;rethinking_support&quot;&gt;Rethinking Support&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/blog/caketier.jpg?w=220&amp;amp;tok=3f75ae&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I&amp;#039;ve been thinking for some time of revamping the support I offer for my three bits of software: there are simply too many distros to be testing all three on all of them! So instead, I&amp;#039;ve decided on a “tiered support” structure, allowing to focus my efforts on distros I actually use for real, on real hardware, and offering a lesser form of support for running on other distros that I only ever virtualise or have barely heard of.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 1 will be comprehensively tested on real hardware, using distros I actually use for real every day.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 2 will be tested for installation and basic functionality using only virtual hardware.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 3 will not be tested usually, but if specific issues or bugs are raised with me via email, I&amp;#039;ll spin up virtual machines on an ad-hoc basis and get issues sorted.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 4 will not generally be tested at all. Things &lt;em&gt;should&lt;/em&gt; work but you&amp;#039;re basically on your own should issues ever arise.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Putting specific names to the various tiers, then, we have:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 1: Full Support: AlmaLinux 9 and 10, Raspberry Pi &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, Fedora, Linux Mint&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 2: Partial Support: Debian, EndeavourOS, Ubuntu&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 3: Some Support: OpenSuse Leap &amp;amp; Tumbleweed, GeckoLinux, Arch, Manjaro, Garuda Linux, Devuan, Linux Mint Debian Edition, Peppermint &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, MX Linux, AntiX Linux, Pop! &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, Linux Lite, Zorin &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, Elementary &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, KDE Neon, Tuxedo &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, Nobara, Ultramarine&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tier 4: Unsupported: Windows, macOS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Two big casualties are apparent in this new plan: Arch and OpenSuse. Arch is just too fast-moving for me to keep up and is, in any case, never installed in standardised way, which makes supporting it practically impossible. OpenSuse is dropped as a tier 1 platform because it&amp;#039;s peculiar and literally no-one I know of uses it as a desktop &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;.
&lt;/p&gt;

&lt;p&gt;
Ubuntu and Debian also take a bit of a hit: I loathe Ubuntu&amp;#039;s use of snaps and several other features of its &amp;#039;not invented here&amp;#039; approach to &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; development; and Debian is probably a bit too slow-moving and out-of-date to be anyone&amp;#039;s primary choice of desktop distro. Nevertheless, it&amp;#039;s not that I won&amp;#039;t test my software on them &lt;em&gt;at all&lt;/em&gt;, but the tests won&amp;#039;t be real-world, extensive usage tests. I&amp;#039;m also restricting myself from here out to testing on Long Term Support (LTS) editions of Ubuntu only. Currently, that means 22.04 and 24.04. Imminently, it will also include 26.04… but I won&amp;#039;t support running anything on a xx.10 non-LTS release.
&lt;/p&gt;

&lt;p&gt;
The numerous &amp;#039;minor&amp;#039; distros that proliferate endlessly are all now in Tier 3. Distros like Peppermint Linux, MX Linux, Devuan, Pop! &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, Zorin, Tuxedo and Linux Mint Debian Edition and so on all get &lt;em&gt;some&lt;/em&gt; sort of support because their parents (usually Ubuntu or Debian) are in more supported tiers above them. If I&amp;#039;m notified of specific bugs or irregularities in the operation of my software on such &amp;#039;niche distros&amp;#039;, I&amp;#039;ll be more than happy to spin up a virtual machine and try to sort the issue out: but I won&amp;#039;t &lt;em&gt;generally&lt;/em&gt; or routinely test on these distros any more.
&lt;/p&gt;

&lt;p&gt;
The move of Windows to Tier 4 status is occasioned by the end of official support for Windows 10 and the fact that I don&amp;#039;t own any hardware that can officially run Windows 11 (and refuse to have a mandatory Microsoft account to use Windows 11 even if I had the hardware!) I know my software &lt;em&gt;will&lt;/em&gt; run on these platforms, because if my software runs on &amp;#039;real&amp;#039; Linux, it will run just fine on the same distros running under the Windows Subsystem for Linux… but I can&amp;#039;t really support that platform if I can&amp;#039;t myself run it in an officially supported manner. So Windows moves to the “it ought to work, good luck” tier! I&amp;#039;ll certainly look at issues if they&amp;#039;re brought to my attention, but it will be on a &amp;#039;best effort&amp;#039; basis only.
&lt;/p&gt;

&lt;p&gt;
On the plus side of the ledger, AlmaLinux gets tier 1 support: it&amp;#039;s a free-of-cost clone of Red Hat Enterprise Server, so support for it also applies to Rocky Linux, which is another clone of the same thing. I use AlmaLinux 9 to run Niente and this website; I use AlmaLinux 10 in a virtual environment only. I&amp;#039;ll do thorough testing on both versions, though. Raspberry Pi &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; also gets tier 1 status because I now use a Pi 4 as my main music player PC and a Pi 3B+ as a secondary player in the summer house. I don&amp;#039;t own a Pi 5 yet, so I can&amp;#039;t claim things will &lt;em&gt;definitely&lt;/em&gt; work on that platform, but they should do.
&lt;/p&gt;

&lt;p&gt;
Fundamentally, then: I&amp;#039;ll still offer help and support for running my stuff on &lt;em&gt;any&lt;/em&gt; Linux distro. But there will now be just a handful of distros on which I &lt;em&gt;guarantee&lt;/em&gt; things will work. There&amp;#039;ll be a handful of distros where things have been tested enough to give me confidence things will work -but there might be some edge cases my testing misses. There&amp;#039;ll then be a swathe of distros where ad hoc support will be available, but very little pre-release testing will have taken place. And then there&amp;#039;s Windows!
&lt;/p&gt;

&lt;p&gt;
Documentation updates will soon take place for Giocoso, Semplice and Niente to reflect this new approach.
&lt;/p&gt;

&lt;p&gt;
Incidentally, the next version of Giocoso (version 3.32) is likely to be released around December 4th, a week earlier than anticipated: it&amp;#039;s been in daily use here for a coupld of weeks and there have been no issues, so holding back an extra week seems a bit pointless. Watch this space, I guess…
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/4/470b03de9089c3366da8a63403ec2cd5.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/rvw_journal_now_out">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-08T19:39:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rvw_journal_now_out</title>
        <link>https://www.bbritten.com/blog/rvw_journal_now_out</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;rvw_journal_now_out&quot;&gt;RVW Journal now out!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/ralph-vaughan-williams-by-hoppe-1921.jpg&quot; class=&quot;media&quot; title=&quot;blog:ralph-vaughan-williams-by-hoppe-1921.jpg&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/ralph-vaughan-williams-by-hoppe-1921.jpg?w=200&amp;amp;tok=3b7d97&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;Just announcing that the latest edition of the Journal of the Ralph Vaughan Williams Society has been published and is available for purchase from the Society&amp;#039;s website. It happens to have been edited by my own good self!
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_info plugin_wrap&quot; style=&quot;width: 60%;&quot;&gt;
&lt;p&gt;
I encourage you to become a member of the Society, for the princely sum of £25.
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/5/52b21e2adbc864deb13b88a470894406.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/semplice_version_2.12_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-04T16:44:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>semplice_version_2.12_released</title>
        <link>https://www.bbritten.com/blog/semplice_version_2.12_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;semplice_version_212_released&quot;&gt;Semplice Version 2.12 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/software/semplice/beethoven98.jpg?w=220&amp;amp;tok=87100d&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;I have today released the next version of Semplice, Version 2.12. The details are, as ever, in the &lt;a href=&quot;https://www.bbritten.com/softwares/semplice/semchange&quot; class=&quot;wikilink1&quot; title=&quot;softwares:semplice:semchange&quot; data-wiki-id=&quot;softwares:semplice:semchange&quot;&gt;Changelog&lt;/a&gt; but there are two big changes that deserve special mention.
&lt;/p&gt;

&lt;p&gt;
First and most significantly: &lt;strong&gt;Semplice now installs on and is fully supported in Tier 1 fashion on macOS&lt;/strong&gt;. It&amp;#039;s been tested on everything from a 2012 Mac Mini running Catalina to a 2026 M4 iMac running Sequoia and Tahoe, so whether you&amp;#039;re using Intel CPUs or Apple Silicon, it should all work as intended. There are two known issues regarding ripping CDs. First, macOS cannot detect a CD/DVD drive unless there&amp;#039;s a disk inserted into it. Semplice on macOS cannot therefore &amp;#039;poll&amp;#039; the CD drive to see when a disk is inserted because that drive doesn&amp;#039;t even exist until &lt;em&gt;after&lt;/em&gt; the disk is inserted! It&amp;#039;s a minor issue, really, and simply means that you insert your CD &lt;strong&gt;before&lt;/strong&gt; invoking Semplice&amp;#039;s ripping options. 
&lt;/p&gt;

&lt;p&gt;
The second issue is a little more awkward: if your CD/DVD drive happens to be an Apple SuperDrive, Semplice cannot automatically determine the correct read offset to use when ripping to ensure accurate rips. That&amp;#039;s down to Apple: multiple manufacturers made the internals of the SuperDrive, each with their own read offsets… but Apple deliberately obscures that manufacturer information when interrogating the drive. Accordingly, it&amp;#039;s physically impossible to know what the correct offset to use for any particular SuperDrive should be. I worked around this for my own SuperDrive by plugging it into a Linux machine and getting Linux to reveal that it was made by LG: knowing that, I was able to check &lt;a href=&quot;https://www.accuraterip.com/driveoffsets.htm&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://www.accuraterip.com/driveoffsets.htm&quot; rel=&quot;ugc nofollow noopener&quot;&gt;the AccurateRip database of known offsets&lt;/a&gt; manually and thus determine my offset should be &amp;#039;+6&amp;#039;. An alternative workaround would have been to use a non-SuperDrive device: Apple doesn&amp;#039;t obscure the hardware identifiers for such third-party drives and thus Semplice &lt;em&gt;can&lt;/em&gt; still accurately determine the correct read offset for them.
&lt;/p&gt;

&lt;p&gt;
Anyway: I use Semplice everyday on my iMac to rip new CDs and tag-up previously ripped-but-not-yet-catalogued ones. It works perfectly well.
&lt;/p&gt;

&lt;p&gt;
The second big new feature is &lt;strong&gt;support for ReplayGain&lt;/strong&gt;. Semplice has always previously performed volume boosts by physically altering the data in the audio signal part of a FLAC. That sort of physical volume boost is based on peak loudness: find the loudest part of a FLAC (or a folder of FLACs) and find out how far away that peak loudness is from &amp;#039;ideal, perfect, non-distorting maximum possible volume&amp;#039;. Then boost the volume of all FLACs in a folder by that amount: everything gets boosted by the same amount and everything ends up as loud as it possibly can be. All of that functionality remains untouched in the new version of Semplice: it is also still the default volume boosting mechanism. The trouble with it is that it alters the digital data contained inside a FLAC in an irreversible manner… and rather a lot of audiophiles don&amp;#039;t like doing that sort of thing! It also requires, at least temporarily, at least twice the disk space and a lot of CPU, because the original FLACs need to be transcoded into new, volume-boosted files before the originals can be deleted. To deal with those sorts of issues, therefore, Semplice Version 2.12 now can be asked to do a &amp;#039;metadata-only&amp;#039; volume boost. The FLACs are analysed as before… but instead of then altering the volume of the digital audio signal, a set of five metadata tags are written to the non-audio part of the FLACs. These tags contain data about the peak loudness of the FLACs and the amount by which they can be safely boosted. It&amp;#039;s then up to your music &lt;em&gt;player&lt;/em&gt; to read these tags and to apply that pre-computed volume boost in real time, during playback. Remove those tags and the playback will be back at the original, non-boosted volume: this sort of volume boost is thus completely reversible, is quick to compute (because no transcoding is required) and doesn&amp;#039;t consume lots of CPU or disk space (because no transcoding is required!). This &amp;#039;metadata volume boost&amp;#039; is actually something of an industry standard way of doing things and is called “ReplayGain”. Semplice, therefore, now supports computing ReplayGain and writing the tags necessary for players to apply it.
&lt;/p&gt;

&lt;p&gt;
Whether your player &lt;em&gt;can&lt;/em&gt; apply ReplayGain is a matter for you to sort out: Foobar2000 &lt;em&gt;can&lt;/em&gt; apply it, but it needs to be told to do so. Other players behave similarly. My own Giocoso is being re-written to be able to do it when appropriately configured and should be released fairly soon.
&lt;/p&gt;

&lt;p&gt;
There are all sorts of other, more minor, enhancements and bug fixes, of course. As I say, read the changelog for those details. 
&lt;/p&gt;

&lt;p&gt;
Updating to the latest version &lt;em&gt;should&lt;/em&gt; be just a matter of taking the usual &lt;strong&gt;Miscellaneous&lt;/strong&gt; menu, &lt;strong&gt;Option 3&lt;/strong&gt; and following the prompts. For obscure reasons, that may however end in a message that &amp;#039;something went wrong with the downloads, try again later&amp;#039;. If that happens to you, then just quit Semplice completely and issue the following commands in a terminal session:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd
rm -f seminst
wget software.bbritten.com/seminst
bash seminst&lt;/pre&gt;

&lt;p&gt;
…and then follow the prompts. This is in fact a complete re-install of Semplice, which will always proceed without a problem.
&lt;/p&gt;

&lt;p&gt;
Incidentally, the new version release is a couple of days later than anticipated, for which my apologies… but getting the software to run on a whole new platform, especially with the purchase of a new PC in the middle of that, using a completely new CPU architecture compared to anything else I&amp;#039;ve ever used, meant rather more testing was required than I&amp;#039;d anticipated. As I say, I&amp;#039;m sorry about that… but we got there in the end with only a couple of days of delay!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/0/008390562400535b5c922e7c7fdea40c.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/semplice_version_2.13_released">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-30T15:17:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>semplice_version_2.13_released</title>
        <link>https://www.bbritten.com/blog/semplice_version_2.13_released</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;semplice_version_213_released&quot;&gt;Semplice Version 2.13 Released&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.bbritten.com/_media/software/semplice/sempliceico.png?w=220&amp;amp;tok=2e3735&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;A little later than intended, but I&amp;#039;ve just released the new Version 2.13 of Semplice. It&amp;#039;s quite a substantial release: the new graphical look and feel is perhaps the most obvious one, along with the ability to set the colours for the individual display elements of the program interface. Under the hood, some fairly significant bugs got squashed, too, however: the biggest ones are mostly to do with making Semplice a first-class citizen on a macOS installation. In particular, macOS&amp;#039;s handling of Unicode characters that involve accents is, er… “unpredictable” and the new version of Semplice brings some order to the chaos! Full details, as always, are available from &lt;a href=&quot;https://www.bbritten.com/softwares/semplice/semchange&quot; class=&quot;wikilink1&quot; title=&quot;softwares:semplice:semchange&quot; data-wiki-id=&quot;softwares:semplice:semchange&quot;&gt;the Semplice Changelog&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
This update is, unfortunately a &amp;#039;breaking update&amp;#039;, meaning that simply taking the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 3&lt;/strong&gt; will certainly upgrade to the latest Semplice release, but it will look like a disaster when you&amp;#039;re done and some important things will be missing (which &lt;em&gt;won&amp;#039;t&lt;/em&gt; be missing if you were doing a fresh install, by the way).
&lt;/p&gt;

&lt;p&gt;
So, to ensure the unpleasantness is kept to a minimum, you need to do a bit more than just taking that &amp;#039;check for program updates&amp;#039; menu option. The first thing you need to do (again, only if you&amp;#039;re upgrading an existing Semplice installation) is to install some extra packages which are new dependencies that Semplice now has and didn&amp;#039;t before:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fedora: &lt;strong&gt;sudo dnf install libsixel libsixel-utils kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mint: &lt;strong&gt;sudo apt install libsixel-bin kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AlmaLinux10: &lt;strong&gt;sudo dnf install kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Suse: &lt;strong&gt;sudo zypper install libsixel1 libsixel-utils kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Arch: &lt;strong&gt;sudo pacman -S kitty libsixel&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debian/Raspbian: &lt;strong&gt;sudo apt install libsixel-bin kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ubuntu: &lt;strong&gt;sudo apt install libsixel-bin kitty&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Once that new software is installed, you can proceed to do the standard Semplice upgrade procedure (i.e., take the &lt;strong&gt;Administration&lt;/strong&gt; menu, &lt;strong&gt;Option 3&lt;/strong&gt; and supply the sudo password when prompted). The upgrade will appear to fail:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_14.52.13.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-30_at_14.52.13.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_14.52.13.png?w=600&amp;amp;tok=281c52&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Don&amp;#039;t worry about that: just press [Enter] or click OK to accept the message: you&amp;#039;ll be returned to the main program screen, which will look ghastly:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/software/screenshot_2026-03-30_at_14.57.04.png&quot; class=&quot;media&quot; title=&quot;software:screenshot_2026-03-30_at_14.57.04.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/software/screenshot_2026-03-30_at_14.57.04.png?w=600&amp;amp;tok=788659&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Don&amp;#039;t worry about this, either. Just take the Miscellaneous menu option once more, Option 1 to edit the configuration file and then keep pressing [Enter] to step through every page of options without changing anything. When you press [Enter] on the last page of the configuration options, you&amp;#039;ll return to the main program menu and see this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.00.13.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-30_at_15.00.13.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.00.13.png?w=600&amp;amp;tok=f8b85a&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
At this point, the only real problem remaining is the size of the &amp;#039;grumpy Beethoven&amp;#039; logo, over on the right of the program display: go back into the &lt;strong&gt;Edit Configuration File&lt;/strong&gt; option once more. On the last page, you&amp;#039;ll find a set of four new configuration options:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.01.23.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-30_at_15.01.23.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.01.23.png?w=600&amp;amp;tok=c6c4ec&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Set the “size of the program logo” to something smaller or larger, depending on how things are appearing on your screen. Use the “program logo position” parameter to supply a negative (move left) or positive (move right) number to adjust the precise position of the logo. For my Fedora installation, I found a size of 110 and a position of 0 worked fine, but your mileage might vary:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.18.31.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-30_at_15.18.31.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-30_at_15.18.31.png?w=600&amp;amp;tok=28535b&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Once the display looks fine, your upgrade is complete. I apologise for the fact that this upgrade is non-trivial and requires a bit of manual intervention on your part beforehand: I try to keep these &amp;#039;breaking updates&amp;#039; to a minimum and I hope this will be the last one for a good long while!
&lt;/p&gt;

&lt;p&gt;
Finally, note that on AlmaLinux, the terminal type that the Semplice launcher runs Semplice in cannot display graphics: that&amp;#039;s why these instructions mentioned installing the Kitty terminal, which &lt;em&gt;can&lt;/em&gt; display those graphics (this may be true for other distros, too). It is accordingly recommended that you use the Kitty terminal for all Semplice operations on that platform in future. If you want to adjust the program launcher so that it invokes Kitty automatically, you&amp;#039;ll need to edit the appropriate launcher file. That&amp;#039;s located in &lt;strong&gt;$HOME/.local/share/applications/semplice.desktop&lt;/strong&gt;. So:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nano $HOME/.local/share/applications/semplice.desktop&lt;/pre&gt;

&lt;p&gt;
Change the “Exec” line of the file. At the moment, it&amp;#039;s reading something like:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Exec=/usr/bin/xterm -xrm &amp;#039;xterm*iconHint: /home/hjr/.local/share/semplice2/art/sempliceico.xpm&amp;#039; -bg black -fg green -geometry 103x28 -fa &amp;#039;Luxi Mono:style=Regular&amp;#039; -fs 11 -ti 340 -tn xterm-256color -e semplice2.sh&lt;/pre&gt;

&lt;p&gt;
Change that to read (rather more simply!):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Exec=/usr/bin/kitty -e semplice2.sh&lt;/pre&gt;

&lt;p&gt;
You may also want to configure Kitty generally to display things in a nicer fashion than it does by default. That&amp;#039;s done by editing the $HOME/.config/kitty/kitty.conf file. My own is very, very simple:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;font_family      family=&amp;#039;Luxi Mono&amp;#039; postscript_name=LuxiMono
font_size 12.0&lt;/pre&gt;

&lt;p&gt;
…but many more configuration options are available to anyone with time to invest in such things!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/4/49e3c3ba647d39d8a08c63cf1a5a2b95.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/something_new_is_coming">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-02T15:28:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>something_new_is_coming</title>
        <link>https://www.bbritten.com/blog/something_new_is_coming</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;something_new_is_coming&quot;&gt;Something new is coming&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Just wanted to announce that I&amp;#039;m planning a complete re-vamp of the website, into something more performant, less cluttered, much smaller and quite a lot simpler to configure and maintain!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/c/cb3ad3fa1a217e7b1fc15000320b8469.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/some_code_comments">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-04T20:03:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>some_code_comments</title>
        <link>https://www.bbritten.com/blog/some_code_comments</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;some_code_comments&quot;&gt;Some Code Comments&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This website&amp;#039;s “sidebar” (it&amp;#039;s main menu, effectively) will refresh every five minutes, because of this code it contains:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
(function() {
   window.onload = function() {
     setTimeout(function() {
        location.reload();
    }, 300000);
   };
})();
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
…which triggers a refresh every three hundred thousand milliseconds (which is therefore every three hundred seconds… or every five minutes).
&lt;/p&gt;

&lt;p&gt;
The purpose of this auto-refresh is to ensure the &amp;#039;currently playing…&amp;#039; icon more-or-less accurately reflects the music I&amp;#039;m &lt;em&gt;actually&lt;/em&gt; listening to, rather than a recording I was listening to several hours ago. A manual selection of any of the sidebar menu items will also trigger a refresh and thereby &amp;#039;reset the clock&amp;#039; for the auto-refresh functionality.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/6/6a2bca78908eca70a9ae54eb33898046.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/state_of_play">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-25T17:05:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>state_of_play</title>
        <link>https://www.bbritten.com/blog/state_of_play</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;state_of_play&quot;&gt;State of Play&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/9b73249d-ff30-4cdb-a011-e4dd69719c57.png&quot; class=&quot;media&quot; title=&quot;blog:9b73249d-ff30-4cdb-a011-e4dd69719c57.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/9b73249d-ff30-4cdb-a011-e4dd69719c57.png?w=220&amp;amp;tok=ef1a3f&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;A quick update on the state of things for this website and its transitioning over from ye olde AbsolutelyBaching website (it&amp;#039;s been three months already!) There are at least a &lt;em&gt;couple&lt;/em&gt; of bits of good news, on what sometimes seems to be a neverending journey!
&lt;/p&gt;

&lt;p&gt;
First, &lt;a href=&quot;https://www.bbritten.com/softwares/semplice/semplice&quot; class=&quot;wikilink1&quot; title=&quot;softwares:semplice:semplice&quot; data-wiki-id=&quot;softwares:semplice:semplice&quot;&gt;the Semplice documentation&lt;/a&gt; is now fully across and completely updated, to the point that it&amp;#039;s actually describing version 2.12 which isn&amp;#039;t scheduled to be out for another week or so! Whether that release stays on schedule is a little bit up in the air: I have yet to check that the installation works on macOS and to document it if it does. If it slips past January 31st, it won&amp;#039;t slip far.
&lt;/p&gt;

&lt;p&gt;
Secondly, with Semplice documentation out of the way, I&amp;#039;ve at last made a start on bringing across &lt;a href=&quot;https://www.bbritten.com/articles/bachcat&quot; class=&quot;wikilink1&quot; title=&quot;articles:bachcat&quot; data-wiki-id=&quot;articles:bachcat&quot;&gt;the Bach Cantatas catalogue&lt;/a&gt;. There&amp;#039;s an enormously long way to go, including copying across all the cantata translations I did several years ago… but at least the work has begun! The Mozart and Vivaldi catalogues will come across after that work is complete.
&lt;/p&gt;

&lt;p&gt;
A new Giocoso update is also on its way, with the ability to do album-level ReplayGain, bringing it inline with what many other media players do already (such as Foobar2000): it&amp;#039;s in daily use here at the moment, so should be good to go within a few weeks.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/6/62fadefe01b9d5617f91307f00206780.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/the_problem_of_portability">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-14T10:11:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>the_problem_of_portability</title>
        <link>https://www.bbritten.com/blog/the_problem_of_portability</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;the_problem_of_portability_part_1&quot;&gt;The Problem of Portability (Part 1)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I was getting ready to release version 3.36 of Giocoso yesterday: it contained a tiny, but significant bug fix, whereby anyone using a comma as a decimal delimiter (as they do in Europe, say), rather than a period/fullstop (as they do in the UK, for example) would have their music playback garbled when the new ReplayGain feature was in use:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot-de.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot-de.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot-de.png?w=600&amp;amp;tok=9aa48f&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The problem is that ReplayGain is invariably stored, by whatever tool that puts it there, in the form “-1.43”. Confronted with that decimal point, European Giocoso installations declare the ReplayGain value to be &amp;#039;not a valid number&amp;#039; and do what you see above. A quick fix was thus implemented that forced the use of a decimal point delimiter, whatever a user&amp;#039;s general PC&amp;#039;s locale would say, and thus guarantee that a ReplayGain would be seen as a valid number, despite the &amp;#039;.&amp;#039; rather than the usual (for them) &amp;#039;,&amp;#039;. 
&lt;/p&gt;

&lt;p&gt;
Anyway: as I say, that fix is “in” and ready to release… but a bit of mission creep, er… crept in and thus I&amp;#039;ve deferred the release of version 3.36 until late next week.
&lt;/p&gt;

&lt;p&gt;
The mission creep is to do with a problem I&amp;#039;ve tried to tackle several times in the past: how do I get music playing on multiple devices around the house, essentially following me as I move about it?
&lt;/p&gt;

&lt;p&gt;
Things started off nice and simply, after all: I have a PC in a drawer connected via optical out to a Douk DAC/Amplifier and a nice pair of speakers in my listening room. Since it&amp;#039;s in a drawer, that PC is headless. I therefore tell it what to play by ssh&amp;#039;ing into it from my iMac desktop and tell it to start playing from there. Music comes out of the speakers, sourced from a NAS elsewhere in the house which the drawer PC has mounted. The iMac runs nothing itself but merely tells the &amp;#039;drawer PC&amp;#039; what to do.
&lt;/p&gt;

&lt;p&gt;
But now I move out into the conservatory. It&amp;#039;s no good my &amp;#039;drawer PC&amp;#039; playing anything now as it will play to the listening room speakers, not anything in the conservatory. I&amp;#039;m also not sitting at my iMac, so I can&amp;#039;t really ssh into anything conveniently to initiate play. Previously, I got &amp;#039;conservatory music&amp;#039; by fitting a little Raspberry Pi in there and attaching it to some speakers. With a small 7 inch monitor, I could log in to that Pi directly and launch Giocoso and start playing music, thanks to the Pi having an NFS connection to my music storage server.
&lt;/p&gt;

&lt;p&gt;
This is not terribly scalable. If I now want to play music in my bedroom, I have an old laptop there, which is again NFS mounted to the music NAS, has Giocoso installed, and can be logged on to directly and I can therefore tell Giocoso to start playing music via the laptop speakers or (more usually at 1AM) via the BlueTooth headphones the laptop can connect to. I mean, it &lt;em&gt;works&lt;/em&gt;… but it&amp;#039;s three fat PCs, each with their own installation of Giocoso, each requiring direct access to start and stop playback. I at least invented Giocoso Pro so that whatever each of the three PCs did, there would be a single record of who played what, wherever the play took place. Giocoso Pro however makes no difference for the need for three independently-usable, fully-fledged PCs, complete with keyboard, mouse and monitor, in the first place.
&lt;/p&gt;

&lt;p&gt;
The thing is, I have ready access to a device that could SSH into any and all of these PCs: my mobile phone. I could simply have three headless Raspberry Pi 3Bs in each room, each connected to the music NAS, each with Giocoso installed. Whip out my phone, ssh into whichever one I want to start playing music and… and then? Therein lies the perennial problem. Let me give you a clue as to what happens when I try that and launch Giocoso:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.42.22.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-13_at_15.42.22.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.42.22.png?w=450&amp;amp;tok=20d091&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;450&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
It reminds me of the Rosetta stone, only somewhat less translatable! You &lt;em&gt;might&lt;/em&gt; just be able to pick out the standard Giocoso main menu: Play Music, Database Management and so on. But the rest of the display is just junk, for the simple reason that there&amp;#039;s no Android or iPhone terminal emulator I know of that knows how to display sixel graphics properly. What you&amp;#039;;re seeing here, therefore, is how a non-sixel-enabled terminal handles displaying the Giocoso program logo. The same thing happens if you start playing a recording and Giocoso tries to display its album art in-terminal.
&lt;/p&gt;

&lt;p&gt;
Apart from the graphical glitch, the other problem with Giocoso on a phone is that phones are mostly portrait in orientation, whilst Giocoso is definitely a landscape kind of app: wide than it is tall! Hence, on this screenshot, you can see the one-line top bar menu has wrapped onto two lines. Phone screens just aren&amp;#039;t wide enough!
&lt;/p&gt;

&lt;p&gt;
It is, of course, for this reason that I invented &lt;strong&gt;mgiocoso&lt;/strong&gt; (&amp;#039;m&amp;#039; for &amp;#039;mobile&amp;#039;!): it was designed to be a &amp;#039;portrait&amp;#039; app and it didn&amp;#039;t display any graphics, so the terminal wouldn&amp;#039;t fill up with nonsense:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.51.03.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-13_at_15.51.03.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.51.03.png?w=450&amp;amp;tok=a55959&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;450&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Much better! Intelligible output, displaying what the main Giocoso running on the machine I&amp;#039;ve ssh&amp;#039;d into is already playing, and giving you the ability to pause, skip, terminate or repeat that play, too, all contained within the device you probably already carry with you everywhere. What&amp;#039;s not to like?!
&lt;/p&gt;

&lt;p&gt;
Well… you&amp;#039;ll notice that you can&amp;#039;t &lt;em&gt;initiate&lt;/em&gt; play with mgiocoso. You can control an already-playing Giocoso session, but you can&amp;#039;t start playback from your mobile device. In my three-room scenario earlier, therefore, I&amp;#039;m doomed to require a screen on each room&amp;#039;s PC, or to access all of them from one PC with a screen, via ssh.
&lt;/p&gt;

&lt;p&gt;
So the mission creep for Giocoso version 3.36 is this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/software/giocoso/screenshot_2026-03-13_at_11.06.58.png&quot; class=&quot;media&quot; title=&quot;software:giocoso:screenshot_2026-03-13_at_11.06.58.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/software/giocoso/screenshot_2026-03-13_at_11.06.58.png?w=600&amp;amp;tok=f98c69&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s in portrait mode, so fits a mobile display. It doesn&amp;#039;t have any graphics, so doesn&amp;#039;t &lt;em&gt;scramble&lt;/em&gt; a mobile display with hieroglyhics. And, drum roll please, it has a &amp;#039;Play Music&amp;#039; menu option. This is the new Giocoso “mini-player”, which will be part of the next 3.36 release. It &lt;em&gt;can&lt;/em&gt; run on a mobile phone, displays OK and &lt;em&gt;will&lt;/em&gt; let you initiate playback. So, now I could have three headless PCs, each with access to the music NAS, each with Giocoso installed; I can ssh into each of them as needed, invoke giocoso-player.sh and then start music playing on whatever PC or Pi I&amp;#039;ve ssh&amp;#039;d into:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.59.36.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-13_at_15.59.36.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-13_at_15.59.36.png?w=600&amp;amp;tok=edafd6&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I don&amp;#039;t see any album art, true enough: but I wouldn&amp;#039;t want to on my mobile phone. I do at least get comprehensive data about what&amp;#039;s playing and when it&amp;#039;s due to end -and I still can &lt;em&gt;control&lt;/em&gt; the playback to some extent, with options to Autostop, Terminate, Skip and Repeat available as they would be in a &amp;#039;normal&amp;#039;, full-fat Giocoso session.
&lt;/p&gt;

&lt;p&gt;
The only slight fly in the ointment is that each of my PCs still has to be beefy enough to have an NFS mount capability, to have all the Giocoso dependency packages installed and to be able to run Giocoso (and ffmpeg) without glitching. The new mini-player mode gives me control via my mobile phone device, but it doesn&amp;#039;t in itself alleviate the need for the PC its controlling to be reasonably powerful enough to play FLACs by itself. 
&lt;/p&gt;

&lt;p&gt;
Fixing &lt;em&gt;that&lt;/em&gt; requirement is another bit of mission creep that has delayed the next Giocoso release a little… and I&amp;#039;ll discuss it in some detail in Part 2 of this post, in a couple of days: for now, this post has gone on quite long enough!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/2/28ae483c362ad4d39ef28dc66c6ee3dd.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/the_problem_of_portability_part_2">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-15T13:04:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>the_problem_of_portability_part_2</title>
        <link>https://www.bbritten.com/blog/the_problem_of_portability_part_2</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;the_problem_of_portability_part_2&quot;&gt;The Problem of Portability (Part 2)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I wrote last time about a new feature in the about-to-be-released Version 3.36 of Giocoso: the ability to ssh into a machine that has Giocoso installed and then to initiate play of music (and subsequently to control it). This, essentially, gives us the following situation:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/pc_control.png&quot; class=&quot;media&quot; title=&quot;blog:pc_control.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/pc_control.png?w=600&amp;amp;tok=9a7402&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
A person with a mobile device can ssh into multiple PCs, each running Giocoso and each with output available to speakers. Each of these &amp;#039;playing PCs&amp;#039; is network-connected with NFS to the NAS box that contains my music collection: in this way, music can play in multiple rooms in the house. This is a &lt;em&gt;first&lt;/em&gt; step to achieving “music portability” around the home: the ability to &lt;strong&gt;initiate&lt;/strong&gt; music playback from an ssh connection is important to making this happen.
&lt;/p&gt;

&lt;p&gt;
The drawback to this approach is one I’ve already hinted at: I have to ssh into each playing PC separately and each playing PC has to have enough compute resource to run Giocoso; each also has to have its own NFS connection to the music collection. Neither are particular intractable issues, but editing /etc/fstab to create a mounted NFS on multiple devices is a bit of a pain; and (especially of late) computers with screens, mouse, keyboard, RAM and decent CPU are not available at quite the bargain-basement prices they once were!
&lt;/p&gt;

&lt;p&gt;
However, there is also the possibility of this sort of configuration:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/indirectcontrol2.png&quot; class=&quot;media&quot; title=&quot;blog:indirectcontrol2.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/indirectcontrol2.png?w=600&amp;amp;tok=5935df&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In this model, we have someone using a phone to control a &lt;em&gt;single&lt;/em&gt; PC or computing device (and I’ll come back to the distinction between those two things in a moment!). It&amp;#039;s the only computer connected to the NAS; it&amp;#039;s the only one with sufficient compute resources to be able to run Giocoso. It is, in fact, the only PC &lt;em&gt;running&lt;/em&gt; Giocoso! Somehow, however, this one &amp;#039;playing PC&amp;#039; is pushing its audio output to four remote PCs over the network: these devices are mere ‘receivers’ of music, not players of it themselves. A subtle point being made in this diagram, too, is that the four ‘receiving’ devices are pretty minimal: they don’t have a screen, keyboard or mouse. They don’t need a powerful CPU (because they’re passive receivers of a music signal, not generators of it) and they don’t need much RAM (ditto). They &lt;strong&gt;do&lt;/strong&gt; need speakers attached to them, obviously: they’re no use to anyone if they can’t make the audio signal they receive actually sound out in the air! My drawing skills didn’t extend to actually &lt;em&gt;showing&lt;/em&gt; those necessary speakers, but they’re there nonetheless &lt;img src=&quot;https://www.bbritten.com/lib/images/smileys/smile.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-)&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
But this prompts the question: how can this configuration possibly work? How can a ‘music receiver’ that lacks the ability to itself run Giocoso nevertheless receive audio from that single PC controlled by mobile phone over ssh? From the opposite perspective, how can that one directly-controlled computing device push its audio data over the network?
&lt;/p&gt;

&lt;p&gt;
The answer is &lt;strong&gt;PulseAudio&lt;/strong&gt;. It does for audio what X11 does for graphics: separates the creator of something from the presenter of it. With X11, you have a program that wants to draw a form or document on a monitor running on one PC and a second PC that actually has a screen attached to it is able to render the depiction of that form. With PulseAudio, a similar division of labour can exist: the one PC connected to the NAS wants to generate audio and the four playing devices have audio hardware that can actually make that audio sound out into the physical world. The beauty of this is that the hardware needed to generate audio data only has to exist in one place; the playing devices can be very lightweight things because they&amp;#039;re not actually doing the generating, just the &amp;#039;sounding out&amp;#039; of a passively received audio signal. You could have an ancient computer running with 1GB RAM and an asthmatic CPU playing excellent quality music, provided only it&amp;#039;s hooked up to a decent pair of speakers.
&lt;/p&gt;

&lt;p&gt;
It is to facilitate this sort of &amp;#039;distributed music playing&amp;#039; that the new feature in Giocoso Version 3.36 that I mentioned last time kicks in. As a reminder, the new feature is the Giocoso mini-player:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-14_at_17.59.28.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-14_at_17.59.28.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-14_at_17.59.28.png?w=400&amp;amp;tok=12774a&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
It runs on a computer that has full-blown Giocoso installed on it, but its program display is in portrait mode and limited in width, without graphics, so it runs perfectly on a mobile device that is merely connected to the Giocoso player PC via ssh.
&lt;/p&gt;

&lt;p&gt;
The point this time, however, is to note the Option 1 and Option 2 menu items: these let you &lt;em&gt;set up&lt;/em&gt; a number of PulseAudio ‘sinks’ and then select one or other of them as actively in use. Here’s what you see when you take Option 2, for example:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-15_at_10.22.57.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-15_at_10.22.57.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-15_at_10.22.57.png?w=400&amp;amp;tok=5ccb16&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You’re allowed to create up to five ‘sinks’ on this screen: their labels are up to you, but must be less than 14 characters long (they’ll be truncated otherwise). Each label is then paired up to the IP address of the device to which the label applies. Those rather obviously need to be fixed IP addresses (or, at least, addresses with DHCP reservations) so that they don’t change after initial setup: Giocoso on the playing PC needs to be able to find it on the network so that the audio can be sent to the right place.
&lt;/p&gt;

&lt;p&gt;
Once you’ve built a library of possible PulseAudio sinks in this way, you can take the mini-player’s Option 1 to select a particular one of them to send audio to:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-14_at_18.04.08.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-14_at_18.04.08.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-14_at_18.04.08.png?w=400&amp;amp;tok=895e78&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The current audio ‘sink’ is marked with an asterisk; your job is to up and down arrow through the list of available sinks and press the Space Bar when you’re sitting on the item you want to use for the next play: that press of the Space Bar will make the asterisk jump to that item, indicating selection success. Press [Enter] to make the new selection ‘stick’. You’ll be returned to the main mini-player menu where, towards the bottom of the screen, you’ll see confirmation of the currently-selected PulseAudio server: if you then tap the ‘P’ option to play music, it’s this IP address to which music will be directed.
&lt;/p&gt;

&lt;p&gt;
To be clear, for any of this to work, the persistent configuration parameter &lt;strong&gt;Force the use of PulseAudio&lt;/strong&gt; must be set in full-fat Giocoso’s configuration settings:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-12_at_15.51.25.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-03-12_at_15.51.25.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-03-12_at_15.51.25.png?w=600&amp;amp;tok=a50f9d&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
If you haven’t set that parameter to “yes”, then specifying a PulseAudio server to play to simply doesn’t work: audio will ‘sound’ on the PC you’re directly connected to, assuming it has speakers to use!
It should also be obvious, I hope, that this can only work if your player PC and the devices it sends audio to are all configured to use PulseAudio (or its cousin, PipeWire, which is essentially the same thing as far as these purposes are concerned). Most Linux distros ship with PulseAudio out-of-the-box and very little, if any, configuration is needed to make them players or sounders. MacOS can also act as a PulseAudio client and server, though things get much more complicated there: I’ll have specific documentation prepared for this topic shortly.
&lt;/p&gt;

&lt;p&gt;
The little secret ingredient I haven’t mentioned until now, too, is that the box doing the Giocoso playing and sending its audio out to ‘sounding devices’ doesn’t have to be a big PC. There’s a reason it was drawn in that earlier diagram with this logo:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/linux_containers_logo.svg.png&quot; class=&quot;media&quot; title=&quot;blog:linux_containers_logo.svg.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/linux_containers_logo.svg.png?w=220&amp;amp;tok=edff6f&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
That is the official logo of the LXC or &lt;a href=&quot;https://linuxcontainers.org&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://linuxcontainers.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Linux Containers project&lt;/a&gt;. What is an LXC container? Well, it’s sort-of like a virtual machine, running on &lt;a href=&quot;https://www.proxmox.com/en/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://www.proxmox.com/en/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;a Proxmox hypervisor&lt;/a&gt;, but incredibly minimal and lightweight: I have an Arch one configured to use just 2GB of RAM, 8GB of hard disk space and two virtual CPUs. It runs nothing much more than standard Giocoso, configured to use PulseAudio. I ssh into it and, using the mini-player interface, direct it’s audio output to whichever one of my minimalist room setups I need to hear music from at the time.
&lt;/p&gt;

&lt;p&gt;
It is quite complicated to get an LXC container to connect to my music NAS; it is even more complicated to get an LXC container to ‘see’ the physical music playing hardware that the Proxmox host has. Documentation on getting all that working is in preparation, too.
&lt;/p&gt;

&lt;p&gt;
I hasten to add that &lt;em&gt;none&lt;/em&gt; of this affects how you use Giocoso if you don’t want it to! All my ‘serious’ music listening happens in my dedicated ‘listening room’: that contains a passively-cooled PC hidden away in a draw, physically connected via optical-out to a full-on DAC and amplifier. I ssh direct into that machine and run full-fat Giocoso on it from my iMac desktop: there’s no PulseAudio involved at all there… and I wouldn’t want it to be!
&lt;/p&gt;

&lt;p&gt;
The new features in version 3.36 of Giocoso simply means that it’s now easier than ever to have less-serious listening follow me about the house, if I want it to: I ssh into the LXC container and direct its output via PulseAudio to the lightweight playing device in whatever room I’m working in at the time. In my garden shed, the playing device is literally a Raspberry Pi 3B playing wirelessly to a small Bluetooth speaker: I’m not expecting great hi-fi fidelity from that setup and sending audio via PulseAudio and Bluetooth therefore doesn’t degrade anything below my already-low expectations! It is enough, however, to have music follow me around the house at will… or, at least, at the touch of some keys on my mobile phone &lt;img src=&quot;https://www.bbritten.com/lib/images/smileys/smile.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-)&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/9/96fe51e25ab9295b4b4a82adf38a3f2d.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/this_is_pleasing">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-15T12:40:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>this_is_pleasing</title>
        <link>https://www.bbritten.com/blog/this_is_pleasing</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;this_is_pleasing&quot;&gt;This is pleasing...&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-15_at_12.38.11.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2026-01-15_at_12.38.11.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2026-01-15_at_12.38.11.png?w=220&amp;amp;tok=54116f&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;The thumbnail to the left, when clicked, will take you to a glorious screenshot of my macOS Monterey desktop, running the yet-to-be-released Version 2.12 of Semplice, busy ripping an SACD over the network from my ancient, crusty but entirely functional Sony BDP-S490 Blu-ray player (as per &lt;a href=&quot;https://www.bbritten.com/articles/howtoripansacd&quot; class=&quot;wikilink1&quot; title=&quot;articles:howtoripansacd&quot; data-wiki-id=&quot;articles:howtoripansacd&quot;&gt;this article&lt;/a&gt;). It&amp;#039;s nice it&amp;#039;s working at all; that it&amp;#039;s doing so on macOS, an operating system I have practically zero experience with, is even nicer.
&lt;/p&gt;

&lt;p&gt;
It happens that this is one of the last bits of functional testing I&amp;#039;m doing before the release of the new version of Semplice, which was scheduled for January 31st. Release seems to be a little bit more imminent than that, though, unless I stumble across new bugs not hitherto unearthed by my extensive testing over the Christmas and New Year breaks.
&lt;/p&gt;

&lt;p&gt;
Stay tuned!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/6/6e9970a4677dfba01270e5a7f5728830.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/whisper_it_quietly">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-12T20:18:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>whisper_it_quietly</title>
        <link>https://www.bbritten.com/blog/whisper_it_quietly</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;whisper_it_quietly&quot;&gt;Whisper it quietly...&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.bbritten.com/_media/blog/screenshot_2025-11-30_at_09.10.24.png&quot; class=&quot;media&quot; title=&quot;blog:screenshot_2025-11-30_at_09.10.24.png&quot;&gt;&lt;img src=&quot;https://www.bbritten.com/_media/blog/screenshot_2025-11-30_at_09.10.24.png?w=220&amp;amp;tok=e3b6a1&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;Seasoned visitors to my website, under whatever domain name it inhabits, will know my love of Linux and my loathing of all things Windows and Apple. Don&amp;#039;t click on the thumbnail to this blog post, therefore, unless you are sitting down with a bottle of smelling salts handy.
&lt;/p&gt;

&lt;p&gt;
I am a creature of impulse, sometimes, and when I was up in the loft getting down the Christmas decorations for this year&amp;#039;s outing, I spotted a 2015 21.5“ iMac sitting forlornly in a spiderweb-encrusted corner and thought… why not? So down it came too, and its Debian installation was wiped and the machine restored to its El Capitan original &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;, swiftly updated to the latest officially-supported release of Monterey. It looks nice enough: in fact, the retina screen makes text look &lt;em&gt;gorgeous&lt;/em&gt; though twenty one and a half inches of screen real estate seems somewhat underwhelming. It&amp;#039;s not a bad computer, though: i5 at 3.1GHz and 16GB RAM are decent enough. It&amp;#039;s real drawback is the spinning rust hard disk that makes everything quite slow to load: an upgrade to an SSD would certainly improve things on that score. The star of the show is undoubtedly the retina screen, which makes text look &lt;em&gt;stunning&lt;/em&gt;, as previously mentioned. I still find MacOS a complete mystery, though: perhaps unsurprisingly, as I must have spent at most… 16 hours or so using it in my entire life.
&lt;/p&gt;

&lt;p&gt;
Anyway, a few years ago, I made Giocoso Version 2 run on MacOS for some reason or other that I now can&amp;#039;t recall: I never bothered trying to get Giocoso Version 3 to run on it, however. The thumbnail to this post tells you, however, that after a day or so spent futzing around with things, I &lt;em&gt;have&lt;/em&gt; been able to get Giocoso Version 3.32 (the one due to be released early in December 2025) running on it. I don&amp;#039;t entirely know whether it is &lt;em&gt;worth&lt;/em&gt; having done so, as everyone who loves Apple will have long since moved on from Intel Macs to the Apple Silicon variety that I don&amp;#039;t possess (and am unlikely ever to do so). But the job is done anyway: impulse is like that sometimes!
&lt;/p&gt;

&lt;p&gt;
This may delay the release of Version 3.32 a little: I mentioned last time that I was thinking of releasing it a week &lt;em&gt;earlier&lt;/em&gt; than its planned December 10th release date… but the code changes I&amp;#039;ve implemented to get things on MacOS now need testing back on Linux, to make sure I didn&amp;#039;t break anything there. So I think the release date reverts back to December 10th after all. All zero of the thousands not clamouring to run Giocoso on their Macs will be grateful, I suppose!
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/e/ebc405e8bea8f7bba603a87adb0597fb.xhtml used --&gt;
</description>
    </item>
    <item rdf:about="https://www.bbritten.com/blog/with_apologies">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-15T20:34:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>with_apologies</title>
        <link>https://www.bbritten.com/blog/with_apologies</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;with_apologies&quot;&gt;With apologies...&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I started this morning with an innocent desire to learn how to host two domain names from the one server (I know how to do it with Apache and Wordpress, but I&amp;#039;m not using that technology stack any more). One thing lead to another and by lunchtime, I had literally re-directed absolutelybaching.com to bbritten.com, even though bbritten.com is running on spare hardware that&amp;#039;s as powerful as an asthmatic ant. Basically, I hadn&amp;#039;t meant to switch the domains around, but ended up doing so anyway: my enthusiasm got the better of me!
&lt;/p&gt;

&lt;p&gt;
There will be quite a few weeks before I finally bring over all the content I intend to transfer to the new site. I&amp;#039;m afraid things will look rather unfinished and rough-and-ready until that process is complete.
&lt;/p&gt;

&lt;/div&gt;

&lt;!-- cachefile /var/www/dokuwiki/data/cache/b/b30b0c3e8851938bafcc56d86eeeb377.xhtml used --&gt;
</description>
    </item>
</rdf:RDF>
