Monday, March 10, 2025

[MusicViz Project] Part 3 - Breakdown of FFMPEG "showcqt" Experiment

This is the third installment of my ongoing series of posts on one of my long-term projects to develop a new automated technique for visualising music.

To motivate today's discussion, here is the final video clip rendered from the experimental technique being discussed in this post: 

https://www.youtube.com/watch?v=LTMpzmdI9qQ

 

And here is the command used to render that:

ffmpeg -y -i 20230803-v02.flac -filter_complex "[0:a]showcqt=s=500x1920:axis=0:cscheme=0.6|0.7|0.1|0.1|0.8|0.5,crop=500:1392:0:4000,setsar=1,transpose=2[vcqt]; [0:a]showwaves=mode=cline:s=1920x100[vs]; [vcqt][vs]overlay=y=H-100[v]" -map "[v]" -map "0:a" -c:a aac "mv_20230803.mp4"

 

Let's annotate that to show the different parts more clearly (see the breakdown following this for a rough description of what each part does):

ffmpeg -y -i 20230803-v02.flac -filter_complex "[0:a]showcqt=s=500x1920:axis=0:cscheme=0.6|0.7|0.1|0.1|0.8|0.5,crop=500:1392:0:4000,setsar=1,transpose=2[vcqt]; [0:a]showwaves=mode=cline:s=1920x100[vs]; [vcqt][vs]overlay=y=H-100[v]" -map "[v]" -map "0:a" -c:a aac "mv_20230803.mp4"

Sunday, March 9, 2025

Flow - Blender Animated Feature Film

As many in the Blender world will know by know, Flow - a Latvian animated film created by a small team in Blender, and rendered using Eevee just won this year's Oscar for Best Animated Film!

Woah! What a moment! The first Blender animated Best Animated Feature award winner! WOW!  😱🤯😍🥳

A *VERY* big congratulations to all the team who worked on this!!! A very well deserved win!

Sunday, March 2, 2025

Introducing... "WhioDoc" (formerly "Quack!" / "QuackDoc")

I guess this weekend can be considered somewhat successful on the projects front (even though I only really got around to 1 of the 3 projects I'd wanted to work on, though it *was* the most important one I wanted to knock off too)

Following a few sessions of toil, I have successfully put up an initial attempt at formalising all the conventions I've been using for writing inline code docs for all my projects over the years!

While there are still a few small loose ends to tack on, at least I can finally point to this thing and say: Here's the spec!

(And eventually: "Here's all the docs-compiler tools + editor plugins everyone asks for these days")

 


https://github.com/Aligorith/quackdoc

https://github.com/Aligorith/whiodoc

 

Saturday, March 1, 2025

Reflections on my time working with Lilypond

Recently, I saw a post from a music student mentioning that they were thinking of writing up some stuff on the techniques they'd learned while using GNU Lilypond - i.e. a LaTeX-like "music typesetter" with its own custom input/programming language (doused / polluted with a heavy dose of Guile-Scheme).

This post gathers up some of my own notes on my own journey with these tools, and how this has tied into where I am today. Come to think of it, this year actually marks something like "just over two decades ago" that I was doing this shit (since IIRC, I probably started doing all this back in 2004!) - jeez... time flies and makes you feel old when put like that!

Friday, February 28, 2025

C17 Landing at NZCH - 2025 02 24

Here are bunch of heavily-edited snaps from the C17 (8202) landing at NZCH earlier this week that I quite like.




I really love the combination of dramatic lighting, tyre smoke, and the funny look on the faces of those sheep - especially on that second one!

Had to heavily edit to improve colour + contrast - mainly to just bring out a bit more colour from all the washed-out / desaturated light and dark areas (which were a consequence of shooting into the sun near sunset... granted, the lighting would conventionally be better considered "better" from the other side, but the roads on that side are scary, and you wouldn't get to see the smoke backlit like this either!)

Tuesday, February 18, 2025

Nike Eskilstuna Drafting Table

Earlier this evening, I came across the following video on Facebook of a 1950's vintage architect's drafting desk - apparently manufactured by "Nike Eskilstuna" from Sweden.

https://www.facebook.com/reel/2626640980856219

 

Wow! This is so freaking awesome! TBH, if I had the floorspace, I'd probably get one for my office-space / living room, especially if I got hold of one with wheels for easier moving! 😍

Friday, February 14, 2025

Rant About Office Chair Sizing

Sigh... it's looking increasingly like I'm going to have to give up on this new office chair after all, after using it in anger for a few days with an adjustable desk that I can try to work around its height-limitations with.

The problem is that it is ultimately way too low for me.

So, just as it was 3 months ago, I'm back to square one in my search for my next long-term office chair it seems.

 

Friday, January 31, 2025

Trip Down Memory Lane + Resurrecting An Old Project

I know it's technically a "work night", but I just went through my drawer trying to dig out my ancient mockups for a project I've recently revived.



I had originally built it as a thing for Dad to use for outreach activities - Back in the day (i.e. back in 2009, from the comments in the source code I've been porting between machines), I'd managed to get the core engine running, but ultimately ran out of time (+ also, a suitable distribution tech stack back in the day), so had ultimately abandoned that project.



Anyway, recently I've been resurrecting it as a motivating toy app to play with Haxe + HaxeUI. 

 

* This seemed like the perfect project for learning this stack + playing around with it. It was a relatively simple + straightforward little piece of tech that is small enough to be easily implementable / portable (i.e. within constraints of what I can safely manage energy-wise + time-wise on top of long days of fulltime 9-5 weekday job commitments). 

* It was also an almost perfect case for this tech stack (i.e. the HTML5 deployment option is particularly attractive for someone who has never been able to get CSS layouts + Javascript coding to really sit well with my worldview).

 

In other words, this was the PERFECT type of small toy project to tinker around with during the evenings now, as I try to re-establish a small pipeline for me to get a bunch of small fun projects done for myself, where I have full + complete control over every aspect. No questions asked. No input from third parties accepted or needed. 100% owned by me, and for the sole purpose of me having a creative outlet to do fun stuff for myself.

Wednesday, January 15, 2025

Canon R5 - One Year On Review

Yesterday (or actually two days ago now, if I end up finishing writing this post tonight) marked a year since I got an R5 as the successor for my 7D. Its funny how, earlier this evening, I'd been wondering: "Hah... I wonder what day exactly it was that I got my new camera last new year... I'm sure it was around this time of year-ish"

This is a follow-up to my earlier posts a week in, and a few months in. 


Key Points:

* Overall, I ended up filling 2x 256GBmemory cards (give or take) this year with this camera - Which also means, I've quickly burned through half a TB of disk storage (vs under/around 150 GB a year previously)... More on this in a bit

* By and large, it has now ended up becoming my daily driver. While initially it was just to get used to it under different lighting conditions, later the increased image quality + better performance in a wide range of lighting conditions was a major drawcard.

* I've been on two multi-day trips with this camera now, so can say quite a bit more about how it handles for such usage

* In terms of battery life - I've got a total of 3 batteries, though in practice, I've only really needed 2 (with the third coming into its on those occasions where I'm too lazy to charge the one in use (and forgot to charge the other one, which had gone flat a while earlier). For typical cycles, they usually average around 400-600 (centered around 550 ish), though sometimes that figure can be as high as 1100 - 1300. Lowest would've been around 250 - 300 ish.

* The improved light gathering capabilities have really come in handy with the increased major Aurora storms this past year, meaning that I've been able to see + capture Aurorae for the first time in my life

Tuesday, January 7, 2025

Observations on Grading Assignments (and Parallels with Screening CV's)

Earlier I came across an article discussing the findings of an interesting study (i.e. https://hechingerreport.org/proof-points-last-name-skew-grades/) where the authors claimed to have detected evidence of a systematic bias against students whose surnames fall later in the alphabet than those whose surnames appeared earlier (when assignments / exams get presented to the marker in alphabetical order, due to the increased used of Learning Management Systems that commonly sort in alphabetical order by default).  


TBH, anyone who has spent enough time grading large sets of assignments (*) can probably explain why:

The first time you see a particular mistake / class of stupidity, you do tend to react kinder to it. But by the nth time, it really starts to grate...

 

A similar thing applies when screening through CV's and applications for a position:

The first time you see some new-grad / early career applicant mention doing an internship or something with some name-brand company, it does sound pretty impressive. However, if they have the misfortune of also applying for the same position along with a bunch of other new-grads who also took part in that same internship / etc., this now starts to count against *all* of them (i.e. "meh... it was maybe just a class assignment / group project type situation, where all the interns were held in an sandpit and given some kind of toy / training exercise")


[Firefox Tip] Useful Shortcut for Checking on What's Going Bad (Memory / CPU Usage)

Just learned of a useful tip for current versions of Firefox to bring up the "about:processes" page (that shows memory + CPU usage of various pages + extensions)

It turns out you can use the "Shift-Esc" hotkey to quickly activate it 

Noting this here so I can find it more easily for myself in the future

Thanks @carey@mastodon.nz for the tip!

Monday, January 6, 2025

Thoughts on Teaching Human-Computer Interaction University-Level Courses

Those who've followed me on various other platforms will probably have heard bits of this spiel before, maybe worded slightly differently in each instance, but ultimately discussing the same ideas / talking points. So I thought it'd be good to write up a canonical version once and for all - especially since it's unlikely that I'll end up doing this anytime soon anyway  (i.e. never say never, but at least for the foreseeable future in the next 3-5/10 years, I'm honestly not really that interested in a return to academia or teaching).


Key Points:

1) I've seen things. Perhaps a whole lot more than most people get the chance to see, and with a bunch of variables controlled for (or at least held somewhat constant).

2) From my observations, left to their own devices, the majority of students gravitate towards doing certain things that, left uncorrected / undiscovered (until too late usually) practically mean they probably don't learn half the lessons they probably really ought to  (i.e. From my perspective, they practically learned nothing (beyond maybe picking up some new trivia that'll be gone soon after the final exam) and just tried to get an easy pass on a course they may have thought was one of the "easier" ones they may be required to take).  At least IMO.

3) "UCAPT" - A useful mnemonic I developed during my time doing this, which I adopted for evaluating student's work (+ and also later in my own practice) to check if all the necessary things have been accounted for.