Showing posts with label WIP. Show all posts
Showing posts with label WIP. Show all posts

Sunday, July 26, 2026

[MusicViz] Spectrochrome Update - Pitches Detected Pane

Had a really productive day and a half on my "Spectrochrome" project again after a 2 week hiatus!

(Apart from running out of steam, I was probably starting to stretch a bit too much on top of still having my day job and/or trying to get some "non-computer-based relaxing/life-living time" in...  And with no external pressures on what should and is largely still an actual fun hobby project, a break was indeed in order!)

Anyway, I finally got back to doing some "new" stuff again, after getting really worn down trying to get that massive colormaps refactor MVP stage sufficiently complete that I could shove it out the door, and not have to deal with the rest of the annoying + HARD problems requiring further intricate refactoring work for a while. Some of the highlights were:


* 1) Got a new "About" / Help-Text panel set up

(Don't read too much into this text in the screenshot just yet! :P  It's still really just a roughly thrown together wad of fluff to have at least *something* - which I've since begun the interminable process of gradual refinement on...)
 

* 2) Also bashed together some stuff to show a floating panel containing details of all the detected notes and their intensities... 

(This was one of the big outstanding features on my roadmap / todo-list, as I needed a faster + more interactive way to see this data, without having to first export it to a CSV file that I then needed to bring into some other tool to read..)

Disclaimer:  This screenshot shows the current "incomplete" state of this - hence why all that empty space to the right of the table is very much needed + justified. Specifically, there's a bunch more work to come soon to show what other contenders for the "strongest pitch" at that moment may be!  (This was actually the way I had the very first version working, but very soon reduced down to just the "strongest pitch", to try and bring that feature under control.  Anyway, hopefully getting this working may reveal some interesting insights!)

Another direction to take this is to try plotting these "strongest pitches" on/near the scrubber while doing the recording

   i.e. There's currently a problem with the generated videos where you can't really get a good feel for the notes that are getting hit / emitted when the scrubber hits them. I feel like we really need some visual feedback that is seen for a few frames before the sound hits and the line actually crosses the point in question to really "sell" the mapping between sounds and visualisation...  (I look forward to that, and/or trying to draw some sort of trace showing how we think the melody might be flowing between these points!

 

* 3) Finally, have managed to do a bit more research into how to try to graft in some "Equal Loudness Curve" support so that I can adjust the intensity that various frequencies are being visualised + processed at - Hopefully when working, this can help dampen out that pesky band between "C7 - C8" that tends to fill into a solid block of bright colour, as it seems all the other harmonics all merge/intersect + resonate at that frequency range... (along with compensating for fundmentals actually rooted at C3/C4 range always ending up triggering a detected peak an octave higher)

(Failing that / or in addition, I really should adjust the colormap to make that range more desaturated so they are play less of a role)

 

Friday, July 10, 2026

[MusicViz] Spectrochrome - ColorMaps Update

[Disclaimer:  Unfortunately this is still not the full fancy intro post that talks about what this is, and how it came to be... Maybe I'll get around to that someday, or maybe I'll just keep posting the updates, and forget to make that long deferred proper intro... who knows! I certainly don't anymore LOL ðŸ˜œ]

 

Yay! I've just pulled the trigger on getting a major bunch of upgrades done on my Spectrogram project that I've been chipping away at during my free time over the last few weeks.

https://aligorith.github.io/musicviz_playpen/spectrochrome.html


Specifically, I've upgraded the whole "Color Map" / "Legend" functionality so that it now allows all the different colours per pitch to be edited (with each one per pitch + octave now displayed in a nice fancy table in the UI). (I can also load/save these as JSON to test out the tweaks I want)

Technically I still haven't quite finished all this functionality (i.e. the table only shows things for the "common" default naming style, with the other accidentals that are not used unable to be edited, AND the names don't update to match the naming scheme chosen). But, that stuff isn't very fun, and it could've kept this update blocked for ages if not indefinitely (while killing motivation) if I kept waiting to finish it off before releasing it all...

So, who cares! It's my project! That functionality can remain as a "broken" (but well documented!)  TODO in the meantime, while I dive back into doing all the other fun bits that need doing! 😜

 

Friday, June 19, 2026

Projects Update - June 2026 Edition

While I've been relatively quiet here on my blog the past few weeks, "project wise", that couldn't be further from the truth!

 

1) Introducing "Spectrochrome" - The biggest news of course that I've finally made a great deal of progress on my MusicViz project again, for the first time in ages.  I plan to share more details about this in a dedicated post in a due course when I complete the last few major chunks of work on it, but before then, here's a brief sneak peak of what's been brewing:

 

Live link to the latest stable version:

 https://aligorith.github.io/musicviz_playpen/spectrochrome.html

What you have here, is a web-based spectrogram tool (built as a single-page tool, that runs completely in your browser on your own machine, using HTML5 technologies), that analyses any audio clip you throw at it (*1), renders each frequency / pitch with a unique colour (i.e. based on the colour scale I covered in the first edition of this series) using a "showcqt" like visualisation, and tries to figure out what the "dominant" pitch at any point is (so that we can then use that in future to drive the "next-step-up" visualisation that will try to do something with the main melodic line detected...

Other stuff it supports (but not really shown in that screenshot) includes:

 * Being able to playback and scrub the audio

 * Being able to render out a video of the spectrogram being progressively drawn as the audio plays

 * A bunch of interactive  adjustment + tweaking tools (i.e. these are some of the active areas of development currently under way)

 

 (*1)    Disclaimer:  It works best for short clips (about 1 - 1.5 minutes in length) - which are the typical ones it is designed to handle (i.e. that's the length of almost all the music I write + record, which is why I need this tool). I can however be used on standard pop-song like songs too (though the processing runs a bit longer, and the longer timeline means that fine details get horizontally compacted / compressed, making any melodic line features less legible.

Wednesday, May 20, 2026

MediaSlurper Updates - Launcher works on Linux now

Just a quick WIP teaser tonight:

Today I finally bit the bullet, and figured out all the necessary changes to get MediaSlurper running under Linux  (though to be fair, I'm only really testing this under Kubuntu currently, but may soon also test under Manjaro for good measure)!

MediaSlurper GUI running under Kubuntu, with the "Foreland" wallpaper from Manjaro

 

Friday, May 8, 2026

Recent Linux Learnings + Experiments + Attempts to Upgrade Linux Laptop to Kubuntu 26.04 LTS

After several days of trials, I've been itching to deploy Kubuntu 26.04 LTS to my Linux laptop, as it has so far seemed pretty OK, but with a bunch of cool new things...

This update covers:

* 1) First impressions of the new LTS

* 2) A whole bunch of niggly tech things I've learned in the past 24 hours, either from general poking around and/or from trying to upgrade my test laptop 

Monday, April 27, 2026

Linux Migration Experiments - First Attempt with Desktop 1, and Hardware Upgrade Roadmap Thoughts

Having previously tried with Desktop 2, and on the back of recent success with CodeQuest Laptop, I finally decided to try and brave testing Linux on Desktop 1 for the first time ever, to see how it would fare. 

After all, as soon as I am forced to take it off Windows 10 (if something sufficiently bad comes along that means that all old machines absolutely need to be taken off the internet immediately - and even then, I can buy some more time by just disconnecting its USB wifi dongle (more on that in a moment), then it'd be good to know that I can safely do this with that machine.

Of course, there's a LOT of water to pass under the bridge with this one first... As in - tons of hardware upgrades + tweaks first (which may be somewhat familiar from prior posts in this series). 

This update covers two things:

* 1) The immediate future hardware-upgrade needs of this system, which are still up in the air somewhat

* 2) Tonight's "failed" first experiment running it under Linux 

Monday, March 23, 2026

Computer Hardware Adventures - Resurrecting Desktop Workstation #1

For the past year, I've been forced to use my "secondary" (+ newer) workstation, as I woke up one morning to my former primary workstation (from 2018) having a severe bout of hardware-related instability. 

Granted, this secondary workstation has actually been a vastly better machine in most regards, as it has actually been more of the setup that I'd originally been going for in 2018 (see details below).  And also, this switch has helped postpone having to address a several "storage crunch" I'd been experiencing on the primary machine  (i.e. I'd gotten to the point where my Photos/Media drive had actually *run out of space*, and I had to quickly offload as much "non-critical" stuff as I could to a mix of "other drives on the machine, for "more important" stuff, and only a secondary drive for all the "not very important" stuff)

Anyway, for "reasons", I've come to finally get around to trying to resurrect this machine now at last!  (I'd actually mean to do it by this time last year... but then procrastination over finding "the right" replacement PSU and/or trying to fit that in against work/holiday schedules has meant that this has only happened now...)

This rambling post will be about the journey of trying to get this working again, and also the upcoming challenges of figuring out how this step now fits into my grand scheme for rejigging how I run all my computing setup (i.e. both the "Linux migration" project, but also the "two workstations / two locations, one big stash of data that needs backing up and syncing") 

Sunday, March 8, 2026

Linux Migration - Current Queries Edition (March #1)

This is the latest in my ongoing series on investigating my setup for migrating to Linux. I've got 2 other posts that were supposed to go up at the start of February, but I've been procrastinating on polishing them up for posting...

In any case, today's update covers where things are at in general, and the outstanding barriers to resolve before pulling the trigger.

Monday, December 22, 2025

Linux Migration Attempt 2 - Part 3 - Bare Metal Tests, Tangles with Secure Boot, and Rethinking Distro + Setup Choices

This update covers a whole bunch of milestones, including finally testing + getting a working LiveUSB Linux distro running on one of my desktop machines, and a whole bunch of new learnings about not only distro choices, but also the impact of different KDE Plasma versions, and also configurations that I like and/or install steps needed to get various distros ready to use. All in all - lots of interesting learnings since the last update!

Sunday, November 30, 2025

MediaSlurper - November Updates

Another month, another bunch of updates to my "MediaSlurper" tools to fix a bunch of annoyances that have be gnawing away at me every time I'd been using them recently.

Such is the curse of writing personal tools: If it breaks, no one will magically fix it for you between when it broke and the next time you use it!  On the other hand though, considering that I literally use these things *MULTIPLE* times every day   (like, 2-3 times most nights to run backups of my devices), deciding to build these and getting them working well for the 95% of the times I use them has been one of the most satisfying and worthwhile things I've done this year!

Anyway, this month, I finally got annoyed enough to look seriously into the following 2 things:

   1) A longstanding bug in my SD Card (Camera Photos) download tool, relating to the duplicate-download prevention algorithm.  Basically, the problem was that it was redownloading any images that had their modified time bumped due to something like a description being added (even if subsequently removed), OR if I deleted the copy locally (i.e. it as out of focus), without having gotten around to removing it from the camera.

   2)  An optimisation to the login prompts for my Android FTP downloading tool, so that I wouldn't need to punch in the IP + Port numbers (or confirm the defaults) each time I used the tool, while retaining the ability to actually dial in a new value on days when new IP + Port values may randomly be required.

 

Saturday, November 1, 2025

Linux Migration 2nd Attempt - Part 2

In this update:

The saga continues. Turns out the distro I initially tried is quite badly configured for what I want in general, but the other two I will subsequently trial will also have their own set of issues too! 

Status: Still trying to figure out a good base setup via a VM.  (Actual hardware support when I finally finish up enough ongoing projects to justify rebooting will be another matter later - and will likely require another round of figuring out if the problems are worth self-diagnosing vs just trying something else)

 

Update 2025/11/12:  I've managed to get the audio problem on my Manjaro VM sorted by running the instructions from https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#stuttering-audio-in-virtual-machine, though I did have to restart the VM (as the systemctl command kept complaining about not being able to access other users / etc.) 

Sunday, October 19, 2025

Windows 10 EOL -> Linux Migration Attempt - Part 1

With this week's official EOL of support for Windows 10, the impetus to try to look into migrating to Linux again for my personal desktop workstations has grown stronger again. Especially as I refuse to have my personal machines associated with Microsoft Accounts that will inevitably mean that various personal info gets inadvertently leaked onto OneDrive (including various sensitive files / settings / etc.), it feels like time to give this another crack, now that I'm using actual desktop workstations instead of laptops with weird hardware...

As I documented on this blog many years ago, the last time I tried switching to Linux, things didn't go so well back then. Particularly, as I was on a HP laptop that had a bunch of very-hard-to-support crap, and I was trying to dual boot it. I'm hoping though that things go smoother this time through a number of different decisions!

Sunday, September 7, 2025

MediaSlurper Updates - Ep 3 - Multi Device Support

It's been a while since I've posted any updates about my "MediaSlurper" project...

Well, that's largely a good thing! Given that it was built as a personal tool to solve some very specific bottlenecks in my data management workflows, that means that in practice, it's largely been working very well for my needs (or at least, "good enough!), which is no mean feat, given that I run it at least 3-4 times a day, almost every day!   Granted, there are a handful over "very annoying" bugs relating to the various heuristics in use to avoid making duplicate copies of anything!)... but those only happen in very specific cases that I can always manually enable escape-hatch hacks in the code to work around! 

But yeah, in general, it's been working well enough that I've been able to pause active development efforts to focus on other more pressing matters  (e.g. "Picasa Replacement Project", and/or general life stuff)

 

Anyway, with the recent need to start urgently investigating properly migrating from old phone to new one (NOTE: I actually made the switch early this morning, and apart from a "major heart attack / moments of sinking terror" trying to get the Whatsapp transition to transfer over smoothly), I ended up running both phones for a while, and needing to be able to use MediaSlurper with both. This lead to a flurry of activity for the past few weeks, culminating in some of the final most useful stuff only coming online today, *AFTER* I have already effectively transitioned off the old phone.... 

Nevertheless, given that I don't know when I might need this stuff again (or whether someone else might find it useful if/when I ever release this tool), I have decided to keep plugging away at it to finish the last push of new functionality that should address a bunch of other things I've found myself really needing over the past month or two.

Sunday, August 17, 2025

Picasa Replacement Project - Update 4 - Roadmap + Component Breakdown

The other day, I went through and did an initial breakdown of the components that would need to be developed as part of my "Picasa Replacement" project, in order to have a workable alternative.

I made this breakdown as a way of going in more level-headed about what exactly I was about to lock myself into (and hopefully convince myself against rashly diving into headfirst), as I was definitely getting "the itch" to just dive right in and build "just the basic photo management tool" part (i.e. "part 4", with "part 1" thrown in to have anything to show, and part 2 inevitably having to be done to before I could even contemplate setting up part 4), with the idea that the actual non-destructive image editing engine would be more of a slow burn afterwards (i.e. the exposure + colour edits would then be ported over as-time-allows, once I had the functional media management tool that I needed first)

(*) I must admit, I have also been slowly digging through Darktable's source code, trying to figure out how much of the iop code can be harvested + refactored into powering the core of my own pipeline  (as some of those operations are really powerful in the ways I want, but simply using the sidecar files to pass data to it doesn't seem as viable an option as I had though, given the horrid way it handles storing state - i.e. obscure hashed / binary-dump data in the sidecar files, coupled with only the database actually having the most recent settings once it loads a file once) 

Anyway, here is the breakdown notes from my notebook, in case anyone else would like to attempt this (or join in the efforts at some point).

 (TBH:  Seeing this breakdown is and should be very sobering... It is probably a decent 4-5 years of man-effort - assuming semi-consistent progress at a fast rate gets made even - to get to a somewhat useful point.  Hence why I wouldn't really recommend anyone attempts this on a whim!) 

Sunday, July 27, 2025

Picasa Replacement Project - Update 3 - Some Easy Wins

In the latest installment of my ongoing series of posts about my current "Picasa Replacement Project", a few days ago, I managed to make a few more easy wins:

1) First, by applying some of the simpler manipulations to a "calibration" image, and trying to match the results - This has quickly revealed some starting points for working with the "Tilt" and "Color Temperature" sliders (even if the values obtained still seem a bit odd / weird, and may still need some fine-tuning)

 

2) It turns out that during an earlier search session, I had in fact managed to dredge up a bunch of very useful posts about the various formats used - especially for the on-disk thumbnails / preview images databases (which will prove useful for having a way to batch-test some of these filter calibrations later  (i.e. the thing apparently uses the standard Windows "Thumbs.db" format, for which libraries do exist !!!)

However, to protect all this info, I'm gonna have to make sure I save off all of it on the various archive sites (in addition to having already grabbed copies for my own stash, in case they disappear before I manage to do even that)... So yeah, I'm not going to publish the list of links until I have secured them. 

Monday, July 21, 2025

Picasa Replacement Project - Update 2 - Initial Working Parser

It's taken a few more days than originally planned, but I've just reached a first concrete milestone:

The rudimentary parser for Picasa.ini settings file is now able to fully parse the settings file for the test folder I chose from my collection!   (Albeit, this was one of the newer ones that I haven't applied as heavy edits on as some of those in the full collection... but it's still a starting point!)



There's lots more to do still to make it actually useful, including:
* 1) Set up a Git repo for this project, so it can be used by others  

EDIT:   The code can be found here            https://github.com/Aligorith/picasa_lib_utils 

* 2) Need to unpack how a handful of other filters I've sometimes used on other photos have their parameters done too

* 3) Figure out what the pixel-level operations some of these were actually doing (i.e. most critical is the "finetune2" filter though that is the hardest; but even something like the "tilt" filter will need translating into a concrete rotation angle)


Wednesday, July 16, 2025

Picasa Replacement Project - Day 1 Status Report

Following Monday's incident, I have decided to urgently bring forward + accelerate my plans to start developing a replacement solution to my Picasa-based Photo Management workflow. As this incident had highlighted, I do somewhat urgently need to find a reliable automated solution to migrate my almost 2 decade library of non-destructive edits over to a future-proof solution I fully control!

As a result, I made a bunch of promising progress on my Picasa Reverse Engineering project last night - i.e. the first night of a new journey!

Monday, April 7, 2025

MediaSlurper Updates - Ep2 - Introducing a basic GUI + Cute Mascot

Time for another (hopefully) quick + brief writeup following another busy but relatively successful weekend of hacking away on this project. In short: I managed to tick off the biggest todo I had planned for the weekend (along with a few other smaller tasks), and with a few additional bonus points for good measure.

Introducing, the initial MVP UI for "MediaSlurper"


1) MediaSlurper  MVP GUI

Perhaps the biggest achievement this weekend was managing to put together an initial functioning UI for the media-backup scripts I've been working on for the past few weeks (see screenshot above).

Functionally, it's still very very crude (i.e. those buttons just call the existing scripts, but then they just execute in that existing terminal window backing this GUI (instead of in a dedicated GUI-wrapped window, OR via nicer GUI-driven UI's). But, most importantly, it serves the original goal of implementing this GUI in the first place (i.e. allowing me to launch these tools in ~2 clicks from the Start Menu, without needing to keep open a dedicated terminal window with 2 tabs - one for each script - open so that I can run them on the near daily / every-other-day basis that I end up needing these)

Sunday, March 23, 2025

PhotoTool Project Updates Ep 1 - Initial Steps Towards Scripts to Ease + Automate Import + Backup of Media Data

For the past few weeks, I've been having a blast hacking away at a pair of scripts for automating some steps of my current photo management workflow that have thus-far been very labour-intensive to perform:  Namely, importing/backing up photos and videos from my camera (R5)'s memory card, and doing the same with my phone (Android).

Sunday, May 19, 2024

Collage Making App - Design Sketches

While trying to put together a collage yesterday showing an amusing sequence of shots of a silvereye swallowing a ball of fruit it had yanked from a nearby fruit from the Autumn Birdy Berry Tree, I was reminded yet again just how frustrating this process is, with practically none of the tools out there really letting me do what I need + want (or at least none of the ones I currently have access to). Sure, I could ultimately bolt this together using some scripts / command-line tools, but it's a bit of a pain iterating on visual stuff like this that way.

 

My Requirements / Process-To-Automate:

* 1) Arrange my chosen images in a line, side-by-side (with ability to reorder them, add/remove items in this lineup, preview different combinations, etc. to get the flow of images right)

   NOTE: You can somewhat do this with existing tools, but it's always *a pain* to do  (and in some, it requires starting over / creating multiple draft solutions)


* 2) Allow bulk cropping the width of these to just an interesting section 

   NOTE: This requires ability to interactively preview + see the effects of such cropping, to make the iteration process fast + painless. This practically rules out all the command-line / scripted approaches. Also, no simple collage maker tools come close to even considering this possibility.


* 3) Allow ability to adjust vertical alignment on each of these individually (to fix framing differences) then v-crop any messy / scraggly bits on either side due to image sizing differences

   NOTE: Same story as above with #2


* 4) Make the canvas fit the whole strip of images (i.e. typically a very wide but not very tall image), at the highest resolution possible (from which I can then compress / resize as needed to satisfy upload constrants)

   NOTES:

        i) This last step in particular *always* manages to stump most tools out there. I get it - those are all optimised for the Insta / FB / etc. folks who have fixed "square" templates to fit their shit into. But, I don't particularly care about that when doing this.

        ii) This is actually a major gripe I have with most of our "creative" digital tools too - from painting apps to music scoring systems: i.e. The need to know and specify up front a "box" that will be big enough to fit whatever you're trying to do into (and if not, to then continuously grapple with various resizing + re-fitting tools to get more space to work in).  In that sense, that's one of the things I'm particularly proud of with Grease Pencil - that it provides an infinite canvas, free from these constraints (and is why I use/used it as my drawing tool) :)

 

Hence, I finally decided to bite the bullet, and see if I could hack together a solution for this.