Monday, September 18, 2023

Argus v1.29, Prometheus v3.18

Two programming days which have been extremely frustrating. I started with some adaptations to Argus, a few slight changes which went largely to plan.

Then, work to address a tiny bug in Prometheus. I have a feature to export the frame numbers for all beats and measures, useful data when making videos. I noticed that any tempo modulations that happen in a song are not reset, so that a song that slows down at the end would, on the next run of this code, assume it was slow at the start and therefore output the wrong frames; but only on a second run which is why I hadn't spotted it before (and 90% of songs are the same speed at the end as the start). This is a minor bug. It's easy to store and restore the settings before and after the calculation.

Or so I thought. This turned out to be an unimportant bug in a sea of little problems. Unlike a normal calculation from the start of the song, frames can start from the cursor, as though playing a song from the middle. The difference seems trivial, but it's not because a lot of pre-calculation takes place before the cursor and before playing. So starting a song at beat #1 doesn't mean that a sample there will immediately begin output at sample number zero. It depends on what's happened to the tempo up to that point and other things. This isn't important in musical terms, but is when calculating to return the -exact- sample number for a particular note, which I do quite often.

It took many hours yesterday and most of today to refine and fix these calculation errors but it's now done. It's amazing that Prometheus is 21 years old and I'm still finding and fixing bugs (of course, any change or new feature can introduce them).

My We Robot work is done so I'm faced with what to do next. At least one aim is to notate my existing music, which will take months if not years, and give me no swift return (if any return) but this is a worthwhile long-term goal. Many artistic things are in progress; paintings, my light, but again the return from them or prospects for them seem bleak, at least uncertain. I need more outlets for my output.

One immediate requirement is a new stand for the Nantwich performance next month. For the first time I'll perform seated using the two-tier keyboard stand. This creates a few problems as the X-stand is now too wide for the tiny Reface keyboard, and that tier obscures the music stand, so I'll need to find a place for that. Again, after over 50 shows, things still need refining and fixing.