Friday, January 31, 2025

Video Admin

I've had a very full, endlessly busy, day updating my video archives. Each video has a code number and variation letter, eg. V445A. The variation is used when a video has the same sort of look, but a different edit of a different size or length; as happens when a full-screen music video has a small square clip made for the Spotify Canvases.

Some of the Fall in Green videos were filed with two separate codes, one for the live back-projection videos, and again the similar video as a Spotify Canvas, so my first job was unifying these.

Many videos are tied to a music release, whether a Spotify Canvas or official music video, or a lyric video, or some other thing designed to accompany a published music recording; so I decided to name these with the album and track number, so I can see at a glance what goes with what. This was a lot of work, as the majority of the 602 videos I have filed are music videos of this sort (most are music videos, one way or another).

Some are lyric reading videos, and some might by live performances of a certain track, but those are not coded in that way. They are named after the track, but the codes are only for videos designed to accompany specific recordings, or projections for live performances of those. I don't code any version of the song as that can lead to over complexity; for a start there may be several alternative recordings to choose from.

This has taken all day, and allowed me an overview of how many videos I've made. Some songs have two different videos, like Interference, and China Syndrome has three. I noticed that I'd made a simple video for our 'Grim by Day', but hadn't uploaded it to the Fall in Green channel, so I did that tonight. I also updated all of the Fall in Green video text, and prepared a draft version of our new album on Bandcamp. We only have ONE follower there. Our music is, I think, wonderful, new and ground breaking; but I'm aware that it is also unheard and unknown by almost everyone.

It's nearly 9pm, and about 12 hours has been spent on this admin work; but it is done for now. Backup day tomorrow, so I'll probably just copy all 602 videos over rather than try to rename everything.

Onwards we crawl in exhaustion.

Thursday, January 30, 2025

Small Jobs

Lots of small but time consuming jobs today. Finalised and filed the Fall in Green album art, and the sheet music. Created mp3 stubs for The Dusty Mirror, and filed the half-completed 'Mr Tambourine Man' cover. The song is so simplistic compared to the expansive and amazing music on Letters From A Square Spoon that we are unsure what to do with it. A showcase should be the best you can do, however interesting, different, unusual it is.

I've created a new High Pass Filter with a resonance setting for Prometheus. I could have added this years ago as a value of 0.125 will exactly replicate the current filter, but I haven't needed or wanted the setting until mixing this album.

I also sent some music tracks to a few people, sent a couple of emails about SFXEngine, advertised the Sunday performance, and prepared much of the equipment, props and books and music to vend. My RockJam keyboard stand has always been wobbly, so I've glued some rubber to one of the feet to stabilise it. I used Super Glue Power Gel , one of the best glues I have. I hope that it will hold. Gluing rubber to rubber is very difficult.

Wednesday, January 29, 2025

Album Art

Reworked the Tunnicliffe music a little yesterday, making the music fit the imagery of the words more. I spent most of the day creating the album artwork, including the cover. I can reveal that the title will be 'Letters From A Square Spoon':

I created lots of MODX sounds today, for live play of some of these tracks, though I'm unsure of the immediate utility of this. We are to give our first performance in months on Sunday. An unpaid show, but it should be better attended than last year's two charity events, which were our only performances. Money is my constant worry. In art and music, I'm creating better work than ever in my life, but have almost no outlets for my art; this massively curtails the quantity of my output and the speed of my improvement. I am making art for nobody to see or hear. Zero painting sales this (tax) year due to a lack of places to exhibit, and no income from performances; yet most of my energy and money has been spent on art and music creation.

I must keep pushing to do and be my best, which is difficult in isolation. To some extent, competition and discourse are required to improve; as well as motivate, though I've never suffered from a lack of drive and self-belief, when I require either. I can understand, however, why Van Gogh and Van Beethoven, and Vermeer, in such isolated doldrums, died. My imaginary artist friends of the past are great companions to me.

It's been a productive January, however. For the first time in 18 years, since Gunstorm II and the happy end of my game programming, I may be faced with the dread and horror of making new games. If I made games now, I feel I'd make them differently, a next generation in quality and style. I must at least aim for that, should this fate come to pass.

Monday, January 27, 2025

Fall in Green Drafting, Tunnicliffe Music

Deb came round yesterday and we went though the new Fall in Green album track by track, making little adjustments based on her feedback. This took a few hours and involved a few special, though very tiny, edits of vocals and general balancing.

Today I've created a Gunstorm bundle for Steam, and written a tune for Deb's poem about the Charles Tunnicliffe for our performance next Sunday in Christ Church, Macclesfield. The poem is somewhat non-linear with a quite and romantic mood about the past, images of nature, and death preserved as image. My melody began with a simple climb of notes, CDE, in F-Major, then a fall but a switch to D#-Major, so the music sounded somewhat off-key, in an electric piano. I was reminded of Japanese jazz-like tunes which were present on Yamaha and Casio keyboard demos, the old music to Buggy Boy, and some console games from the 1990s. The tune moved between on-key and tuneful and somewhat odd sounding; a gentle drama for a gentle poem.

Saturday, January 25, 2025

Steam Graphics, Grosvenor Drop

Completed new Steam graphics for Argus, Argus Frames Upgrade, Argus Tracks Upgrade, Future Pool, Future Snooker, Gunstorm, Gunstorm II, Gunstorm Soundtrack, Radioactive, Radioactive Demo, Taskforce, Taskforce Demo, and Yinyang yesterday. I noted, again, that my Steam games seem to be about a thousand times less popular than every other game I see. Well, I keep trying my best to promote them and can do no more than that.

I came up with a few ideas to improve Radioactive.

Today, a trip to Chester to deliver 'She Was Always Asleep At School' to the Grosvenor Musuem, followed by an always joyous meeting with David Lawton, fine painter, and excellent art historian, and art raconteur if such a thing exists. He spoke about the injustice that certain globally famous painters, Van Gogh, Monet, eternally eclipse equally valid, and perhaps equally good, artists who remain unknown and forgotten by most of the general public. He reeled off many names which, true to his theory and to my chagrin, I've already forgotten. David is a wonderful and passionate communicator about art. Each time we meet, Deb and I try to encourage him to write a book.

Thursday, January 23, 2025

Steam Graphics, Fall in Green, Argus v1.51

Woke late yesterday and struggled with my tasks of the day. I prepared some new parchment-like paper, repaired my broken tripod with Polymorph (I'm sure it's stronger now than when new), and many other small jobs. Most of the day was spent re-sizing the artwork for the 8 Flatspace Music Packs, as Steam have doubled the sizes for all of their Store graphics. This is a time consuming and exacting process (and very annoying to have to do, running to stand still).

Today I awoke to an email about this very subject. Steam are phasing out the old sizes, so I'll need to update all of the store artwork for my existing titles. SFXEngine and Flatspace have been updated, but the rest need doing. This will be my big job of tomorrow, it will easily take a full day.

Today began with an email abut the next Fall in Green gig, an event for Macclesfield Book Festival, which is four February weekends of events in Christ Church. We'll perform for 20 mins or so on the 2nd February. I updated the FIG website with prettier Song-Kick graphics, and prepared the paperwork for the event. After that I charged into a major Argus update and have worked all day on it. Argus v1.51 is now live with four changes:

First, the ability to save modulators in other bit depths. This is useful as Floating Point files are non-lossy compared to 16-bit dithered ones.

Second, added the ability to activate/solo/mute tracks by colour group, as well as generally organising these options.

Third, improving the optimisation of events at the same time index. Several events at the same time can be now automatically merged...

...and finally, which I'm most proud of, a new transformation process for Transformed objects. Before this (and in ALL Hector games until today), the position*size was added to each vertex, but this has the effect of scaling down things to the screen centre. I've never really used 'size' for transformed objects until Argus, but here is is useful for things like decals, logos, subtitles, and other things which should appear on the screen directly without being affected by the camera. The new processing scales the object first, then set the position. Sounds simple enough, but it's been at least 15 years (perhaps 20) since I did any Vertex Shader coding, so it was a re-learning curve.

The next (future) update will concern the screen size and dynamic calculation of things like number of tracks. That's a complex job too. I want to incorporate some form of zoom-out view in future. I need to update the manual too, and add multiple languages.

Tomorrow, those Steam graphics. Yesterday evening, Deb heard the new Fall in Green album for the first time. The artwork for that is making slow progress (when I can find time). We'll have to dress up for band photos this weekend. On Saturday we're off to Chester to deliver my Sleep painting to the musesum.

Onwards we charge.

Tuesday, January 21, 2025

Violet Lightning Dream, Park Photographs

A bad night of stomach twitches. I dreamt of walking home, along Nantwich Road, at night with Deborah. The starry sky above was stunningly beautiful, and spiral galaxies were clearly visible in lovely colours, yellow in the centre and different at the edge or beyond where the dark-matter ought to reside. Violet lightning, almost smoke-like started to strike alarmingly around us, though the result was more pretty and electric, rather than loud or booming at all, and there was little rain. Two bolts struck very close to Deb and I awoke in fear.

I remained awake for hours until perhaps 07:00, then finally slept. I awoke late and tired, and have battled to work today. I've added the vocals to Mr Tambourine Man, and updated my website a little, adding links to the Galleria Balmain gallery. I went out after lunch to take some photographs in the park for the Fall in Green album artwork, and stopped off at Deborah's on the way; delightful and unexpected.

I've taken some scans of screwed up newsprint as possible backgrounds for the album, but they are too creased. I'll try again tomorrow with another attempt at something parchment-like.

Monday, January 20, 2025

Fall in Green Album Admin and Artwork

A day of work on the new Fall in Green album. The proof-listen last night went fine, the album is complete as far as I'm concerned, but Deb needs an essential listen too. I started the day by rendering the final 16-bit tracks and splitting these, compiling the mp3 headers (I don't make mp3 versions of album tracks nowadays, only short 1-second files with tags which can be copied and pasted to mp3 files as and when needed). Then, the start of submitting tracks to the relevant authorities. The sheet music, apart from these official identifiers, is largely complete.

Then, a slow turn of my mind towards the album art. This has to begin with experimentation, and I've used many of the drawings from Deb's books which illustrated these same works.

I rather liked the pen and ink look, and made up some yellowed-parchment images too. I scanned in the surfaces of some oak, walnut, and a 'coffee marble' tile to explore possible textures. All look good, but I think I'll aim for the media of paper and ink; this seems to match the ethos and feeling of this album. I chose a hand-written sort of font style from Google Fonts.

I have 6 or 7 proto-pages designed. I like to have a broadly similar feeling to textures, and an overall colour scheme. I also like two broad backgrounds, light and dark, so I can use one for the front, one for the back, and have options for overlaying text. I'll also need some band images/portraits, and perhaps some outdoor photography. The album already feels rich in artwork.

One smaller job was working on the vocal processing for our version of 'Mr Tambourine Man'.

Sunday, January 19, 2025

Love Symphony Films, Profile Photos, FIG Mastering

A good day of full activity. Life is so short, so precious. Doing things is not the problem, but choosing what is best to do, which whim deserves our attention.

I started the day by installing AviSynth v260 in an attempt to see if it would fix the various lock-outs and crashes which AviSynth had perpetrated on the Love Symphony films, and on 'Norman Bates', and FOTTI. This worked, so I completed dividing the full Love Symphony film into 9 parts on a per-track basis, at least in the scripts.

Then, I took some new photos for social media, and an official artist image for the music platforms. I like to have a specific look for each album, so needed some for The Dusty Mirror. These worked well and were completed unusually quickly, but the ISO was rather high (it was accidentally left at the video setting), so the photos were rather grainy. No matter, as it adds a smoky and older look to them which is something of a refreshing change.

Then lunch, and back to the remastering of the Fall in Green album. The music is so good. Rarely does music bring me to tears, but our music (and Deb's words!) does repeatedly. I'm crushed with even greater sadness that so few people will hear or appreciate its (and her) brilliance, but we live in hope. I've made many small changes over the past two days; small adjustments to vocal volume, and to track levels. Here, two tracks distorted a little due to the volume boost, so I removed that boost (as Bjork's mastering engineer should have). 'Sky Robes of Celeste' has a louder crescendo, but I've lowered that a little, to raise the volume of the speech, and I've added some twinkly stars to the end which blend into the next track.

After that, a pause from that job, because one can't master in one go. These subtle things need many listens over a long period. I went back to the Love Symphony films and found that FFMpeg wouldn't work with AviSynth v260! I uninstalled it and reinstalled the latest AviSynth+ and, lo and behold, the formerly problematical films worked fine. If that's solved this problem then today's edits will prove truly valuable. I'm hesitant to install a new version of AviSynth+. It feels too delicate to touch.

I re-rendered all 9 films, and prepared them for a future YouTube release on this, the 10th anniversary year of the Love Symphony film. The first film took about 3 mins to render. On my old PC running FreeMake, the same act took about 50 minutes!

After that, a new proof-listen to the full Fall in Green album, and two small changes to the overall balance.

I was reminded today that the care system needs fixing. We have a system where aristocrats, who do nothing for society and have attained their station though no merit, are given free food and accommodation, and a life of peace and kingly comfort, being attended to at all times by a staff of, often highly qualified, servants on subsistence wages. The aristocrats are 'those in care', the servants are the care workers; and this unjust system, less just than the aristocratic world before the French Revolution, was instigated by the socialist left who in theory were the ones opposed to this exact injustice. It is amusing how time inverts philosophies. I'm reminded that the Democratic Party in America used to be the more right-wing, more libertarian party.

Enough of such thoughts.

Saturday, January 18, 2025

FIG Mastering, The Love Symphony Film, Bronowski Dream

A few scant things done. Compiled the first master to the new Fall in Green album. A few tracks needed rebalancing with minor changes, then the final volume balancing.

From 17:00, I looked again at the Love Symphony film. I thought it would be a nice idea to split the film into individual music tracks, making a video per-track. When I made the film in 2015, I deleted the source footage as it was considered too huge, only to re-find it years later (I had actually backed it up to an obscure hard drive). I think I have it all now.

For tracks 4 and 5 the editing was complicated by the minor issue that track 5 is a one-minute segue between the two album tracks, and the film merged tracks 4 and 5 into one. I used a simple edit to split the two. Track 3 and Track 9, however, would not load at all due to what is almost certainly an AviSynth+ v3.7.3 bug (I assume that the older AviSynth v2.60, which I made the films with, would still work, but I can't install both side-by-side). I still have the Track 3 edit from 2019, so this isn't a problem. I'll simply forget about editing Track 9 for now; and indeed forget about doing anything more while I consider what to do with these.

Generally, I feel lost and uncertain of direction at this akward time between projects. I dreamt of being lost in a car park, trying to find a bus or coach home from some distant tourist place, like Chester Zoo or Tatton Mansion. I also dreamt of working for Jacob Bronowski. I was in a team, and had to be up early, perhaps at 6am, and wear a shirt and tie for this unwelcome office job which I had to attend. I was aware that there were two similar teams of similar looking people, with similar names, each operating on opposite shifts.

Friday, January 17, 2025

More Sample Coding, Crumpsy Scoring

A somewhat sad slow day. Woke late after a night of agonising stomach pain scattered with terrible nightmares, probably due to eating leeks the day before, which, though I like the food, I find indigestible. By 5am I'd still not digested the meal I ate at 5pm the previous day.

Most of today was spent refining the programming efficiencies from yesterday. My 'goto' statement didn't last long. I decided to check for the flag first and give that a separate countdown, letting it drop out to another uninitialised countdown. By the end of today, just about every variable or branch that doesn't need to be in the loop has been evolved out. The speed result is miniscule, but is tangible, and all of the code for the sample players is now more unified and neater.

One other job was the scoring for Crumpsy Madpash, the music of which is now complete.

I'm remain sad at David Lynch's death and this evening watched many of his early short films; Six Men Getting Sick, The Alphabet, The Grandmother. The imagery of The Alphabet and The Grandmother stuck in my mind so much that its palette has influenced my thoughts about film. Those early films are filled with Francis Bacon-like imagery; the screaming distorted faces, and perspective-boxes.

Thursday, January 16, 2025

David Lynch Dies, Crumpsy Madpash, My First C++ Goto

Sigh, a sad evening as I hear that the wonderful David Lynch has died. My dreams of meeting him will be confined to the dreams in which we meet.

I started today working on the Fall in Green music, a simple matter of adding the vocals Deb recorded on the 2nd of December. I found the need to delay a sound starting for a second or so. The updated (Nov 2024 version) sample players have a countdown before they play, and that could be any size, but I limited it to a mere second. I thought this was a bit mean, so today I extended it to 8 secs. There were about 6 plugins which used this.

Starting this simple programming task led me down a tunnel of wanting to update the other sample players with new efficiencies. The code used to check if a sample was there, and if so count a loop of 64 samples, each time checking if the pointer was past the end of the sample or not. I realised that I could unify both checks in some cases, dropping out of the loop rather than running the same check 64 times in a row. In other cases, the 64 loop can be needed for countdowns, but I could still drop out when needed. The code in these cases ran like this:

if (lpengine->sample)
{
    for (b=0; b<64; b++)
    {
        if (!flag)
        {
            (countdown timer, and if at zero set pointer=0 and flag=1)
        }
        if (lpengine->sample->pointer<lpengine->samplesize)
        {
            (data is copied here, pointer incremented)
        }
    }
}

The latter 'if' runs 64 times in a row, when a first fail can cause it to drop out, AND it needn't check at all if the flag isn't set - but it does need to check when the flag is set for the first time. At first I used an 'else' statement and a 'break' to stop the loop:

if (lpengine->sample)
{
    for (b=0; b<64; b++)
    {
        if (!flag)
        {
            (countdown timer, and if at zero set pointer=0 and flag=1)
        }
        else
        {
            if (lpengine->sample->pointer<lpengine->samplesize)
            {
                (data is copied here, pointer incremented)
            }
            else
                break;
        }
    }
}

Better; but I needed the data copy to take place when the flag was initially set, so for the first time in my programming life, I used a 'goto' statement to jump over the 'else':

if (lpengine->sample)
{
    for (b=0; b<64; b++)
    {
        if (!flag)
        {
            (countdown timer, and if at zero set pointer=0, flag=1, and goto calculate)
        }
        else
        {
calculate:
            if (lpengine->sample->pointer<lpengine->samplesize)
            {
                (data is copied here, pointer incremented)
            }
            else
                break;
        }
    }
}

These programming distractions took all day, but I did manage to insert the vocals into Crumpsy Madpash. At times of artistic transition, I find programming a useful reset; like bringing a 'Logo Turtle' to a stop before rotating and heading off into a new direction. Today's changes made Prometheus a tiny bit faster and more efficient.

Life is about tidying, fixing, making more efficient. Life persists because order is resilient and chaos not so. The more ordered we are, the more resilient we are. Order is strength. Chaos is weakness. Onwards we march.

Wednesday, January 15, 2025

Filing, The Artist's Motivation

A slow day, slow slow slow! I filed the sheet music for The Dusty Mirror, preparing for its public release on release day, and this evening filed the 'Johann Strauss Blues' music, though I can't complete the admin on this yet.

In the day I updated Flatspace to v1.14 with the bug fix I recently applied to Flatspace IIk, and added a new plugin to Prometheus: 'Randy Sample II', which plays a sample with random pitch, start time, amplitude, and initial delay. I also tested a new backup USB stick for the MODX, and can confirm that the name of the stick is what the MODX7 uses as its identifier.

I've done a few other minor filing duties, like correct version numbers of software, and updated and contributed to the Flatspace 3 design document.

I need to work next on the Fall in Green music next. I must remind myself of the shortness and preciousness of life, health, ability.

I've spent 7 weeks working on The Dusty Mirror, and many months in 2020 before that on it. Future generations may ask why. I have no record contract, or external party willing me on or paying me. I have little hope of selling the work in any way, the only financial reward would be a few scant drips of streaming royalties. Good or bad, I doubt the music will be popular or acclaimed; I don't particularly want or like acclaim or applause. I am my own best and worst critic, and have never much believed or paid attention to the opinions of others regarding my work - this I perhaps learned from my parents, who either harshly criticised everything for ludicrous reasons, or paid no attention to anything I did. This made me immune to trying to please others. I have learned a lot while working. I've become a better singer, player, composer and producer. This is a key motivation: doing what's new to grow and be better as an artist and person; but perhaps the key reason for creating this album (and all of my music) is because it is my job to create. As an artist-scientist, I feel it is my duty to humanity to create, and to push myself to create my best work, to do the best I can. It is my life's purpose to contribute to global culture, and to enhance my own life and abilities by pushing myself to be better, as a person, and in skill and ability as a creator. It is the creators hallowed job to fulfil his potential in a way in which those trammelled by society cannot.

Tuesday, January 14, 2025

Norman Bates Complete, SFXEngine v2.01

Completed the 'Norman Bates' video yesterday, adding an animated glow layer which included some mysterious clouds.

Then started some cursory update work on SFXEngine. I wanted to add the ability to move Environments up and down, but forgot that the main sound buffers were stored only in the top-most Environment. I postponed the fix until today. I dashed to town, hearing that flu vaccines were available, but when I arrived they had run out. I returned to a note requesting 10 copies of books for the Agency for the Legal Deposit Libraries for Neorenaissance and How To Organise Your Computer Files, so I ran around packaging these and preparing this important shipment.

I charged into SFXEngine upgrades today, and added several small features. Testing was complete by 15:00. All is ready for an upgrade prior to the Sound Pack launch.

After that, I uploaded the 'Norman Bates' video, and prepared all of the videos for release at the correct time. It's taken about 7 weeks, to remaster The Dusty Mirror. Much more work than I anticipated, at least half of this was video work, although the music too took more consideration. Of course, Christmas, and other jobs like the Fall in Green music and Flatspace programming got in the way too.

I could promote this more, but as ever, any work on it will steal time from new projects.

Sunday, January 12, 2025

Norman Bates Video, Arcangel

A frustrating couple of days, I'm eager and keen to finish The Dusty Mirror but find myself working on the music videos. I now know the feeling of being made to promote music by working at things like this, even though I barely work commercially (merely hope for success), and have no task masters; yet my own drive pushes me to do my best, and always towards new ground.

I'm beginning to feel like a film maker. Watching Star Wars: Rogue One yesterday, and North by Northwest, made me observe the lighting, angles, calculate shots and layers; all automatically, as a result of my recent filming and video work.

A side note: Rogue One: the best of the universally poor 'new' Star Wars films. The best part of every story is not knowing what will happen in the end, and the lack of this is why all 'prequels' are terrible. The only thing worse is the 'remake', for the same reason, except that a good film (nobody remakes a flop) is dragged through the dirt and soiled by association. The only thing worse than a remake is a 'reboot', which is a remake without imagination. Alas, all of the 'new' Star Wars films are all of these three things, and Rogue One manages to be all three in one film! Idiotic though it is as a story, the action parts at the end are good. The final battle is by far the best part, on par with war films like Where Eagles Dare (and more shallow).

Many recent films, such as this, fall prey to casual racism and sexism. We cower in shame at Hollywood's early days where black and Chinese parts were played by white actors, or even male actors played female parts. Now, female actors routinely play male parts (most of these action characters are clearly male in attitude and style, merely looking female), and black (less so Asian) characters play white parts excessively, making exactly the same mistake as 100 years ago. This is response and reaction to that earlier shame.

I digress.

I compiled most of the final music videos yesterday, but 'Norman Bates' remains. I felt the need to make a full video, so have spent today doing this. I'm limited in some things. I'd like few more slow zooms and fades. My camera wobbles when the lens zooms. I've used an old time-lapse of some sunlit clouds, darkening them for a storm, and spent yesterday trying to record a film on television as though seen in a rainy puddle at night. This involved making a 50x50cm tray from aluminium foil, painted black, and placing it in front of the television in a dark room.

It looked better than I thought in some ways, worse in others. I became fascinated more by the odd patterns, in a grainy film that didn't really look how I'd intended. I have, in this film, started to use a wider range of camera settings, and I'm starting to see flaws in everything. This is good; a sign of progress. Beginners struggle, then after a while things seem to be working fine. The next step up is to think that everything is bad; this is the first sign of becoming actually good at something. This feeling never really goes away. Being satisfied at any creative work should be a hard battle.

In other news I had an email about my old game Arcangel, the game which was 'published' and distributed across the world without my permission or any payment, the game that drove me to the brink of suicide and pushed me into a new direction of avoiding publishers or help from anyone - for life. The worst aspect of the Arcangel debacle isn't my lack of control, or the loss of a game which I'd put my life into for 2 full years, but that it was a flawed and incomplete game, gifted to millions of people in bad condition; and badly received. Perhaps I should be glad it wasn't a hit, given that it was stolen from me, but to have a creative work stolen, seen by millions of people, and be an unfinished horrible mess, is a worst of all worlds. Well, I can't face that game, any more than David Lynch can face Dune. Though, he is wrong, as he can fix it if he wants (I pray that he will), and he was paid for his work. For Arcangel, I got nothing.

Friday, January 10, 2025

Arm Dream, FOTTI Single Videos

I dream of a world where living human arms can grown and adopted. One person adopted an arm which grew a black hand. Deborah adopted a (white) hand, which hadn't yet grown. These were world firsts. I took part in a television debate about these hands and the regulation concerning their adoption; were people able to look after them? Some background checks must surely be needed, etc. The dream was probably linked to the various arms and hands in The Dusty Mirror and its videos.

An day of unusual and extraordinary tiredness, perhaps due to the cold or great stress. The past two days have also been very busy and productive. My stomach is tight and in constant pain.

Today I completed the final edits of the 'Fear of the Thing Itself' and Johann Strauss videos. The PRS are lax in processing the latter song, a job normally done in 24 hours has taken nearly two weeks to date. I've ordered a new memory stick for animation work, which (if I'm very lucky) could compete in speed terms with the unreliable hard drive I'm using at the moment. I've done some cursory work on a 'Norman Bates' video. Before yesterday's YouTube showcase, I was happy to call the Dusty films complete, and make Norman Bates a simple lyric video, but now I see the importance, utility, rarity, and artistry of video work, so I'll try to push myself yet harder. This is already my most accomplished album by far in video terms.

I must summon the energy to complete this. New music and new video await.

Thursday, January 09, 2025

Johann Strauss Video, Cat Covid Showcase, Bandcamp Pre-sale, and More

I awake at 04:00 and sleep in torrid flickers until I rise at 09:00 to a 12 degree room. I finished the Johann Strauss video, re-photographing a background and using two 3D lights to approximate the colour (if not the shadows!) of the scene.

Then added the lyrics. I recompiled 'Fear of the Thing Itself' with gaps around the subtitles, though this made little difference, and made and uploaded Spotify Canvases for both songs. I then went out, primarily for some exercise, and bought some new face paint colours - essential props!

Then, I released the pre-sale of the album on Bandcamp, something of a last minute decision, but if the album is to be released soon it needs to be visible, so it's now visible. I need to update my album release plan to make my path clear and stable.

Then, work on the 'Except for the Hatred' video, adding long lightning sparks to it, which echo the lightning on the album cover. I heard that 'Cat Covid!' was to be featured in a new (to me, at least) music showcase programme on YouTube, I tuned in ay 18:35 to just miss my track, but enjoyed the rest of the show and will be back.

I then compiled some paintings for the Society for Art of Imagination membership renewal, and built more drafts of the videos in progress. I need to complete the album plan, reach final drafts for the videos and start uploading. I also need to promote the SFXEngine Sound Pack; the first is due out on the 29th.

I am at my limit of jobs. Any more would be overwhelming.

Wednesday, January 08, 2025

Johann Strauss Video, and More

A power day of video wrk. Completed the lyric video for 'The Arm' and updated the draft of 'Fear of the Thing Itself'. Then completed the animation for 'Except for the Hatred', and filed Argus v1.50, releasing it this evening. I also set up a few Steam sales for the future.

I confirmed a year's membership of the wonderful Society for the Art of Imagination. Then, filming some hands for 'The Fingers of Evil'. I always had a strong image of a certain type of white bony hand, shaded like the imagery in David Lynch's Alphabet film (ideally I'd have pointy nails!). I painted my arm black and while and filmed myself in front of a dark curtain, raising the shutter speed to make it darker. I converted at a low bitrate to leave in some digital grain.

The colour is muted but natural, I used a cyan and yellow light (my favourite combination!) but made no more adjustments. That shot is mixed with the digital clouds from the final video.

Finally, work on a video for the B-side 'The Johann Strauss Blues'. I made an image of Johann waltz and tap its virtual 'feet' to the music in a most amusing way. This needs a backdrop and lyrics.

All videos are done in some draft apart from 'Norman Bates', which now exists as a generic lyric video, already better than nothing.

Tuesday, January 07, 2025

Back To Video, Argus v1.50

I'm wrestling with new finding a new focus. Yesterday I worked on more Flatspace 3 plans, just working out and codifying ideas. I don't think I'll ever program this game, but after a few days of work on Flatspace, it seemed appealing to try and develop a good idea.

I also worked a little on Argus, and did the time consuming and tedious album admin. I'm still waiting for the PRS to list my Strauss track; without this I can't register it. I expect they have a backlog. This admin, with the PRS, PPL, Soundmouse and MusicBrainz, took all day, for one album. How frustratingly inefficient the modern world is!

Video work continued to today as I charged back into The Dusty Mirror videos. I started the remaster on Nov 20th. It was a good idea to add lyrics to them all, but I've bitten off a bit chunk of ambition with aiming for full videos for every track of this sort of quality. Today I have at least lyric videos for all tracks; adding the words to 'The Arm' and 'Norman Bates', over a simple foggy background which matches the cover art.

I also finished the first draft of 'Fear of the Thing Itself', with some simple animation overlays, and started on 'Except for the Hatred', as well as updating Argus to v1.50 with a few new features. This the most I can fit in a day.

I must be sure that the work is worth it, rather than rush out things. I remind myself that new art doesn't have to be better than the best, but better than the worst. My work must be better, a bit better, than what has come before. These videos are that. Of course, some past videos were very good, to me at least, but here I have a full suite, something I've rarely done before. This full suite has much more in it than those of the last two albums.

I must work twice as hard, three times, faster, to get as much done, of as high quality as possible. At times I feel I have no goal; that this work will never make money or can even be for money (unless one video proves to be such a wild sensation that it creates millions of streams or followers!). Experience indicates that my work won't be popular or acclaimed either, but I can hope and aim that it is worthy of this in the long term. The least I can do is my best, give my most, push my hardest, strive beyond what I've done before.

Onwards!

Sunday, January 05, 2025

Flatpspace IIk v1.11

An unexpected full day of work on Flatspace IIk. I was determined to track down the orphan mine bug and have worked all day on it, finally solving it. One crucial trace was to save out each shot and sprite pointer when a game is saved, then document each sprite when loaded. Oddly, one of the loaded sprites was later disregarded as an orphan; my first clue.

It turned out that the problem was entirely with save and load. When saving any game with shots in the air, re-loading that save would only load one shot, but re-load all sprites as though they were shots, leaving a mass of ghost-shots which appeared to be valid, making the error less obvious. It was caused because the linked list of shots is uniquely added to at the start rather than the end (shots have a 'bank' to speed things up and avoid real-time memory reservation).

This has probably been a bug in Flatspace II since version 1.00, and old and huge games may have hundreds of thousands of distant shots filling up the game universe. Saves made from v1.11 onwards will finally fix this and work correctly, though older saves can't easily be fixed as there's no simple way to see if a sprite is valid or not, ghosts will persist forever (until death and a new game, that is). It won't be a problem from v1.11 onwards.

I'll release the update in a few days or weeks, after more testing. Now I must get back to music videos. My computer fan is making annoying clatters, perhaps because the room rarely gets above 18 degrees in the current cold snap. I can but hope that it will enter a calmer phase, as it is wont to do.

Saturday, January 04, 2025

Castle Park, More Software Updates, Art and Science

First, a trip to Castle Park Arts Centre to collect my three paintings. I exchanged a few words with the nice artist helping with the process.

At home I updated Future Pool and Future Snooker with the new game engine changes as planned. Charu sent a Flatspace IIk save which exhibited the 'mine bug', which is useful but I couldn't find how to replicate the error, which is the crucial thing. There are so few instances where the shot vanishes, and all should make the sprite vanish too.

One line caught my eye, an 'if' statement that referenced a pointed-to variable like the deletesprite routine. It would be bizarre if that was the cause of the problem, as if the statement itself was bypassed out of fear of a crash; no that's too bizarre, but still, I've added a NULL check. I'll refrain from updating the program for a few weeks. This bug is not urgent, it may have been around for years so cannot be serious.

I'm tired of this programming. I analysed my Steam stats today. The total number of lifetime players for my Steam games are: Flatspace IIk: 2285, Radioactive: 72, Yinyang: 25, Future Snooker: 54, Future Pool: 41, Flatspace: 2410, Taskforce: 31, SFXEngine: 25, Gunstorm: 14, Gunstorm: 13, Argus: 161. Of course, the Gunstorm games are the newest. It's sad that so few have played my games, but my task is to make them as well as I can and not worry about much else. I was reminded today that I designed all of these games 20 years ago when I was a very different person. Now I'd do everything differently. Then, I hoped for success from my games, something popular, good, and profitable. Now I only want to do my best; to create something special, in an artistic and emotional sense.

Artist and scientist are the same job. Both form connections between things to create a magical spark, a spark enjoyed by those who later see that connection too. Science, however, has great prestige, and even touted as worthy and a good job for the country by the government; and art a poor job, or even a pointless waste of time. How both opinions be true? Science is thought to have a practical value (though of course, many discoveries do not at first). Art, however, is rarely seen in practical terms; yet it is as practical as science, if not treated with the same rigour as science is today.

Friday, January 03, 2025

Flatspace Upgrades

Well, I had thought I'd fixed the Flatspace IIk bug. It was fixed (ie. failed to crash!) in one save, but trying another save caused a crash at Game Over. I painstakingly traced it by outputting a line in a text file at specific points, and I eventually narrowed it down to deletesprite(), a core part of my game engine.

This was a bit of a surprise, as the code there hasn't changed much since 2002 and the first Flatspace game. More odd is that it shouldn't ever crash. The program cycles through all sprites, and if they have a flag of zero (which means 'dead'), the pointer to that sprite is passed to the delete routine. In that routine, all sprites are searched again to locate that pointer. We know the sprite is there and that the pointer is valid, but for some reason, it didn't seem to work, as though it were searching for a sprite that wasn't there...

Odd in many ways, not only in that it had worked fine for 22 years. Perhaps the sprite had been deleted by using some advanced forward-looking logic in a modern CPU, that it had been deleted before the code even saw it. Or the lack of a NULL pointer check (I didn't think I needed one) made the system refuse to look further just in case... but ultimately, the fix was as simple as adding that check, which is good practice anyway.

From:
for (lplpsprite=&startsprite; (*lplpsprite)->next!=lpinput; lplpsprite=&(*lplpsprite)->next);

To:
for (lplpsprite=&startsprite; ((*lplpsprite) && ((*lplpsprite)->next!=lpinput)); lplpsprite=&(*lplpsprite)->next);

The fix seems to have worked. There were are few similar iterative loops that used the same sort of code, so I changed those too. Then I discovered that I'd made this deletesprite() fix in my game engine some time in 2020, but had failed to pass it on to Flatspace. This means that some games; Gunstorm 1 & 2, Bool, Firefly, and Taskforce, probably don't need updating; but Future Pool, Future Snooker, and Argus, should be. Radioactive and Yinyang are too old to need the update. They date from the DirectX6 era and used an array of sprites rather than a linked list (much easier to program with, but far more memory hungry; Radioactive holds over 300 sprites in memory at all times).

The updates to Flatspace and Flatspace IIk have taken all day. I took the opportunity to fix some of the GUI problems in both games, to upgrade the Steam Store graphics with double resolution, and update lostinflatspace.com, which I hadn't touched in about 2 years.

What a waste of my precious time and life these troubles are. I seem to waste so many days scrabbling to try to get back to a stable state, a step once attained and now lost by a random act, rather than making actual positive progress. Well, at least I made a few little upgrades. Yeats said that 'the intellect of man is forced to choose perfection of the life or the work' - I'm supposedly free, as free as Leonardo da Vinci, yet am forced to choose work time and time again. I can but do my best by rising early, working late, and doing what is needed as efficiently as I can.

I will wait a day or two to update the other games, while Flatspace is being tested in the real world. Onwards I charge.

Thursday, January 02, 2025

SFXEngine DLC and Flatspace IIk Bugs

Today, preparing the store descriptions and images for the up and coming SFXEngine DLC, this was lots of work.

Then, work fixing a bug in Flatspace IIk, which had mysterious crashes. The bug didn't occur in my version, only the Steam version. I updated the Steam SDK to the latest version and the bug seems to have vanished - all good!

But, terribly, I found another bug which has proven to be harder to track down. A save game I have been sent has a mysterious mine floating in space. An analysis of the scene has proved that an orphan mine sprite is present in the scene, not attached to an active shot, but I can't find any circumstance why or where this may happen. Leaving a sector will wipe all shots, as will saving or quitting the game, and wiping all shots will always wipe the sprites attached to the shots. It's clear that the shots are being deallocated, but somehow the sprite has remained.

Once active, the sprite will remain forever, as only the shot ending its life would erase it.

This triviality is driving me mad and distracting me from more important work.

I must battle onwards.

Wednesday, January 01, 2025

The Goal Of Happiness

I never thought that happiness was a sensible, reasonable, or practical goal; as well as being one impossible to achieve. Happiness is a change of state, not a status in itself. It can only be attained following sadness, and when attained can only precede sadness. Emotions fluctuate in all sorts of ways, and can no more attain stability than a feather in a flow of air.

Emotions are probes of another's state, so that we may judge their reactions to our actions. Emotions are always social tools, and of very limited use when alone. I barely spoke or had any meaningful social contact with humans from the age of 18 to 34 (and to an extent further back into childhood). During this time I was not sad; my emotions instead became dulled to a point of feeling very little, operating in a mode of pure reason. Once I began to interact once more, my feelings re-appeared and ultimately flooded back to what one might term a normal state.

Emotions are not solely for social use however, as psychologically we treat many other things as virtual people. Our emotions can be useful then. A beloved cup when broken, for example, may make us sad; an emotional guide to the utility of the object, a message that our lives may be a little harder from then on.

This is all emotions are, an informational guide as much as pain or pleasure. Rather than happiness, a more sensible goal for life would be to notice these messages for what they are, but to continue with our jobs of life with their guidance in mind. The sign of the civilised mind is one who is in command of their emotions in this way, rather than slaves to them.

War, Prosperity and Sustainability

Ending hunger and poverty are noble goals, but it seems that there has always been starvation and poverty. The reason is that a population will increase until the current resources are exhausted, and while some, probably a majority, will enjoy a comfortable life, there will never be enough for all to do so. If all of the hungry and poor were magically gifted food and money, and became contented, the population would procreate and reduce the available resources; creating hunger and poverty once more.

It is for this reason that hunger and poverty will always exist. Humans, like all animals, will strive beyond what is sustainable. Some will continue to thrive, and some be unable to survive as a result. It is ironic that biological history shows that a sustainable life is unsustainable. A minority of those who act unsustainably will thrive and out-perform the rest.

One way that hunger and poverty can be reduced is to reduce an extant population, thus, for a time, freeing up the resources that are available, leaving more for everyone. It is somewhat ironic that hunger and poverty can best be reduced by increasing death generally; and perhaps this explains some of the prosperity that affected the world after great plagues, and perhaps the wars of the 20th century.

Knutsford, Annual Backups

A short break away in Knutsford afforded a first visit to Tatton Park, and a delightful look at some of the art and furniture there. The Wizard of Oz display was somewhat dismal, amusingly bad at times, but this was inconsequential. The house; its rooms, and contents were the stars of the show, and perhaps we wouldn't have thought to visit were it not for the Oz attraction. I'm grateful and feel blessed that friends games us the opportunity to stay.

Yesterday was spent, as all 31sts of December are, on my annual backups. This took all day. Each year I back up this and all blogs, my website database, Chrome bookmarks; then copy everything to three hard drives; one per-month, one per-quarter, one per-year. Then I created a Windows Recovery Drive (which takes at least an hour - amazingly slow). After that, deleting and filing my Gmail emails, which perhaps nobody on Earth does, but I like to have a record. Perhaps this is important exactly because nobody on Earth does this. In 100 years, I may be the only person with a record of important (not all, by any means) emails from the early 21st century. My email records are filed per-year and stretch back to Nov 2000.

Filing these in Gmail is not trivial. One must create 'Labels' per year, search 'newer:2016 older:2017' for 2016 emails for example, and label everything. Only then can that label alone be downloaded. I delete a lot of emails, generally everything that's too big (due to attachments), and after 1 year, all online order-type emails. Notifications are typically deleted rather than filed. Even so, each year has 50 to 100k of email, which is horribly wasteful, as the size of the text alone would be tiny and easy to manage. I wish Gmail would permit the deletion of attachments, but no. I wish Gmail would allow per-year filing, and an easy offline search (plain text?) of past emails; but again it does not.

I've spent today with Deb, watching the Vienna New Year's Day Concert. I watch a bit of this each New Year, but this is the first time I've seen it all, and all but 30 mins with Deb.

I'm now very tired after these busy days. I must make 2025 plans, but am already faced with many possibilities. For years I'd imagined 2024 to be a crucial and important year. It was not, apart from being my most difficult and strugglesome in many years. I can but fight harder. We are wind-blown leaves at the whims of fate, but we are in control of our attitudes towards it, if of nothing else.