All posts


PlanMixPlay 2023 Roadmap
Thursday December 22, 2022

There's a semblance of irony to the fact that my last post acknowledges that I do not write these updates as much as I should, and then the following update occurs about 2 years later. Oof.

According to my analytics I have - perhaps - a total of about 10 consistent visitors currently and given my update frequency, this is - honestly - understandable. I apologize to the handful of people that pop by, that this page isn't more frequently kept up to date. I'd advise any avid reader to join the PlanMixPlay Discord as that area is a tiny bit more lively than this page, at least for now.

But I digress. I'm here to present the roadmap for the future work that I envision for PlanMixPlay in the coming year(s). Three key points summarize it well:+

  • New Graphical-User Interface (GUI). PlanMixPlay's (PMP) existing GUI was built from the ground-up in C++ with some assistance by some incredibly talented external individuals. PMP's GUI so perfectly encapsulate a dilemma every developer will face many times in their lives. Re-invent the wheel and make quick progess now, or stand on the shoulder of giants and make slower but more sustainable progress. While there are exceptions to this rule, it tends to hold in many cases. When I first started building PMP all these years ago, I had no idea which direction the GUI would go in, nor exactly what it would end up looking like. As time passed, PMP's GUI had gone from a small pebble around its neck to a giant boulder wearing it down. Rather than polish or improve the GUI, it's so much more reasonable to upgrade to a flexible but much more powerful GUI library. Arguably, PMP should possibly have made this switch a long time ago, but the best time to do this isn't always clear, even in hindsight. There are several consequences of making the move to a new GUI library:
    • Development will be initially slow for a quite a while as I adapt to using a brand new library with its own way of doing things, and slowly port all of PlanMixPlay's functionality to this new GUI. Given the licensing terms of the GUI library I anticipate to move forward with, I likely won't release any new versions of PlanMixPlay for a while until a signficant portion of the functionality has been ported, so anticipate a slower release schedule for a while.
    • Better separation between GUI and code. The library is a lot better about expressing the front-end using a non-coding language which carries significant advantages with it. One being the ability for me to tap an external designer to help polish PlanMixPlay's front-end, without giving up access to the source code.
    • Significant performance increase. Performance was never a focus of PMP's custom GUI as its display was always very, very simple. But even with its simple GUI, there were instances of sub-par performance that have always been a tiny thorn in my side. These will naturally disappear completely on their own with a transition to this new GUI.
  • New website. PlanMixPlay.com is getting a bit long in the tooth. Launched about 6-7 years ago web standards have changed significantly and I simply don't have the inclination to keep up with all the deeper details to properly running a non-managed website. Thus, in the coming future I will be transitioning to a much more managed portal to service my website needs. This isn't a high priority given the exceedingly limited audience size the website has, but a necessary step regardless.
  • More promotion/exposure. The second prototype party completed in Melbourne, Australia back in August was a great experience and confirmation that PlanMixPlay is ready for more widespread adoption. While it still has lots of rough edges what it really needs now is an increased audience size to help gather more feedback about its use and most rough areas. So a focus in the future will be to promote and expose the software to a greater audience size.

I'm excited to see how PlanMixPlay grows in the coming year!

Thank you for reading!


Next three milestones for PlanMixPlay
Saturday August 8, 2020

I don't write these updates as often as I should. I think developers have a habit of believing that anything that isn't programming isn't making progress. I don't think this habit is unique to developers to be honest. I think any person with a job will feel that if they're not engaging in the core activity that job surrounds, they're not being productive. Be that accounting, managing, building, architecting, you name it. But that's foolish. 

First of all, almost no one becomes successful without being able to at least competently navigate and execute some add-on skills surrounding a core task. E.g. Einstein needed to understand patenting in addition to being a brilliant physicist. Jeff Bezos needed to both be a good developer and a good business man. I think the only individuals I can imagine where the focus is so laser sharp that few, if any, other skills matter, are athletes. But even athletes need to work with their trainer, manage a schedule, etc.

All of this is to say, that I should probably log and write about what I do more often, even if nobody reads it, because it still provides a good space for self-reflection and re-focus on what's important.

With that in mind, I'd like to list what's recently been completed on PlanMixPlay, and what I'd like to achieve next.

Recently completed:

    - MVP functionality - I demo'ed PlanMixPlay to a former colleague recently who noted the three things he felt were necessary "Minimum Viable Product" functionality. Specifically:
        - An audio cross-fade - The ability to cross-fade between two songs. It may not be beat-matching, but with proper co-ordination and planning, you can have a bitching set just fading at the right times.
        - Video playback re-enabled - As software keeps growing it is not unusual for features which aren't being actively maintained to break. Video playback was one these, and it is now back to prototypical working order.
        - Load/Save Mixmap - The ability to load and save a composition is another must-have feature if PlanMixPlay is every to be used for more than just local demo play. The framework to do this is now present.
    - Visualizer NeonGrid - The recently release PlanMixPlay Teaser 2 was a culmination of a several weeks of focused work towards visual output I wouldn't be ashamed of leveraging in-front of an audience. While it still sports a few rough edges, on the whole, it finally put together enough compelling elements to be worthy of sharing. The teaser was on top of Reddit's Vjing sub-reddit for a day, and I gained a couple of new YouTube subscribers. Overall, I'd call it a success!

Now let's look to the future. What's next for PlanMixPlay?

    1. NeonGrid control - The NeonGrid can currently only be properly controlled via a debug user-interface. PlanMixPlay must support controlling visual (and audial) elements in the Mixmap in an intuitive manner. A large re-factoring of the PlanMixPlay user-interface code has already been completed to pave the way for this upgrade.
    2. Release polish - In an ideal world, I would have resources to give PlanMixPlay a decent polish before its next release, but I'll have to settle for getting the roughest edges smoothed out. I.e.:
        - Make the audio-waveform somewhat pleasing to look at again.
        - Have audio widgets properly display a name, and have it move according to what's visible in the mixmap.
        - Look into the default media folder *constantly* appearing to reset to the current working directory.
        - Tweak drag interaction to remember where a drag began.
    3. Do a show - Ultimately, PlanMixPlay is being built to be used. I am, and should for the foreseeable future, be an avid user of it. Once the first two tasks have made reasonable progress, I'll do my best to announce a show date in advance to motivate my work.
    
Alright. That should be enough meandering for one post!


PlanMixPlay Teaser 2
Thursday July 16, 2020

It's taken a lot longer than anticipated, but a new teaser for PlanMixPlay is finally here. I think it is undoubtedly the best vertical slice of PlanMixPlay's functionality by far.

There's a fair bit work left to do, to have the PlanMixPlay User-Interface properly support the types of parameters this new visualizer style supports. The video presents a debugging interface to manipulate the visualizer. However, once this work has been done - it'll be ready to do a proper live show with!


Update re. show postponement
Sunday February 3, 2019

I'm currently facing a higher than usual load of personal activities in my life, forcing me to throttle the least life-crucial activities a bit which unfortunately includes the weekly shows I've been doing. Thus, the schedule moving forward will be bi-weekly. In addition I've had to postpone the show originally scheduled for today by a week.

The bad news is - no show today/tonight. The good news is, the show isn't canceled, so despite now being on a bi-weekly schedule you'll be getting two weekends in a row with a show. Yay for content!

In relation to PlanMixPlay, the most recent development involves better support of debugging visualizers as that's been a growing concern ever since the visualizer pipeline has matured to a point where it can now support the majority of the first envisioned ideas I'd like to implement.

I wish there was more to say/show, but I'll be keeping the cards a bit close to the chest until I have something I'm comfortable putting on display.


2018 comes to a close
Saturday December 22, 2018

This year seems to have passed even faster than the one that preceded it. It's been the year of my online streaming comeback and so far I'm fairly content with the result. If there's anything to be discontent about, it's perhaps the speed at which PlanMixPlay progresses. There's absolutely no lack of ideas and features I'd like to cram in there at the push of a button, but alas, it's also important to be able to prioritize.

I feel this is something I'm not great at, but hopefully getting better.

It's no secret that I've long wanted to get PlanMixPlay out in-front of an actual crowd, and while it's still not quite ready, I think 2019 might actually be the year I have not only my next prototype party, but perhaps even a proper live local show. Time will tell. But although progress has felt slow, it's been a steady slow. I try my best to balance my time between the actual live show I've started doing again on SlayRadio, as well as getting PlanMixPlay feature ready for a proper live show. A few recent upgrades that I recall would include...

On the application PlanMixPlay:

  • Basic audio spectrum analysis now supported
  • Basic visualizer utilizing spectrum analysis created
  • Updated most visualizers to run in native 1080p
  • C-64 console output now supports color
  • A single emoji (heart) supported via chat

On the website - PlanMixPlay.com:

  • Partially fixed YouTube videos not being properly tied to completed shows. Given the sheer size of YouTube, it's not surprising that their system takes a little while (+5 mins perhaps?) to expose a new video via their API. Unfortunately, the previous code was fairly overzealous in trying to prevent needless quota calls - meaning if it doesn't absolutely have to poll YouTube, it doesn't. So the site only polled YouTube if SlayRadio.org informed PlanMixPlay.com that a show had recently ended. SlayRadio - being quite timely to do this - lead to PlanMixPlay.com querying YouTube.com for the completed show, before it was ever properly published. Although the window within which PlanMixPlay.com polls YouTube has been widened, there's still something off, as a recent show has yet to be properly tied to its associated video.
  • Fixed PlanMixPlay.com immediately reverting back to a non-show state if the show's a bit late. As exceedingly professional as the show is, it does happen, on occasion, once in a blue moon, that it's a little late. Previously, once we'd pass the official time of commencement, PlanMixPlay.com would revert back to just showing the regular (no active show) site. Any newcomers would be thoroughly confused by this, as even the 'upcoming shows' would no longer display the (almost begun) show, so it'd be as if it never happened. Now there's a bit of a window to allow for irregular starting times.
  • Minor user-friendly polish. Tweaked a few details such as showing the show title, on the site, as well as auto-refreshing the browser if the show is late.

Last, but certainly not least, I want to thank everyone who's bothered to give me their attention, as well as provided feedback.

Happy holidays and a happy new year!