From reading various programming practice articles/books, I am attempting to employ some Lean development and better-thought-out design. Goodbye dead code!
I am trying ChatGPT / Amazon Q as coding assistants. Mixed results… sometimes helpful, sometimes plain wrong suggestions, sometimes handy…!!
Made some time to work on this whilst I can – looking ahead at my calendar it’s getting busy with other (more important) things πππΌππΌ
I’ve realised that do I get easily distracted – some of the best engineering work requires adequate focus, as I’ve observed at work (day job). And it is easy to get discouraged, given how long I’ve had this project in WIP for. But it’s coming together – looking forwards to reaching a Minimal Viable Product (MVP) and getting some real testing in!
Update on recently completed work:
β worker queue for loading images (bitmaps) on a separate thread.
improves playlist load performance. Rather than suddenly spamming the CPU will a bajillion bitmap load requests, which causes a noticable UI lag (for a few seconds), the ‘image loading work’ is now processed in a FIFO queue.
My attempt to improve my test methology with data. Turned out that `GC.Collect()` was actually (effectively) running the entire time throughout my differeny test scenarios, so not sure if my test results were accurate in terms of memory π
β ui/ux: tabbed ‘library’ and ‘design’ panels, docked to the bottom
This design pattern was inspired by looking for examples out in the wild…
DJ software like Serato and Djay are interesting because the live realtime performance workflow of a DJ means that all UI elements must remain onscreen for quick access – there is no time for the user to fiddle around with resizing panels etc!
IDEs like IntelliJ, Visual Studio 2022, Visual Studio Code all have docked panels which can be resized. But also collapsed, and toggled to return to the last saved state.
β ui/ux: lots of work across various screens and controls
Dark mode theme is here! Cleaned up the ‘playlist title’ which is moved to the left panel. Looks neater, quite happy with the look and feel atm.
Experimenting with custom user colours on slide groups. Should match with the left panel list items though.Getting more logging. Oh, slide thumbnails can be resized now!Song Editor WIP. The idea is that you work from left-to-right of screen: edit stanza lyric text, add line breaks to split long stanzas into multiple slides, then drag and drop song part arrangements on the right. Preview with the centre slide thumbnails.SongSelect recently refreshed their platform – breaking existing APIs. Seems they didn’t want to version or maintain the old API – which I noticed broke some other paid app we do use π₯Ίπ₯Ί[I’ve since had to manually format new song imports twice already!]. I did have to rewrite the lyric file text parser for the new format.
NDI integration
…it is not really working π
Platform changes:
My whole rendering is based on AvaloniaUI, which I cannot extract rendered Bitmaps from starting at the major 11.x release just recently. I’m waiting for an API (p.s. the guys at Avalonia are really smart!)
For the time being I am blocked at version 11.0-preview8
I am slowly working through the remaining (but important) items for a MVP, as I test out the software in various low-key live gatherings. This includes file saving/loading and some graphics issues with crossfading between slides (it ain’t as straightforwards as you’d think!)
It also needs some ability for (basic) slide design & customisation.
6+ months of heavy development time, and 7+ years of dreaming π