PlanMixPlay is undoubtedly the biggest undertaking I've ever undertaken. This is both a positive and a negative in a number of ways. Things of such big scope are hard to complete all alone, because there's no group mentality to keep you working, only the gratification of accomplishing something. The feeling of accomplishment seems quite distant however, when you're at the starting line looking at what seems to be a horizon stretching for eternity. It isn't eternity really. In fact, it's pretty close - but because it is beyond what you can see, it might as well be eternity.
Despite this daunting outlook, these things keep me motivated:
- If I don't do this, nobody else will. Don't get me wrong - there are lots of people who can do this, and if I don't do it - it will eventually be done I figure. But probably not the way I want it to, and probably not as fast as I want it either. I'd argue that there's a reason 'art' and 'technology' are often separated, and I'd say it's because people often lean into either. It's rare to find someone into both these things beyond a certain degree, than just one. If this is true, it means there are fewer people around who would have the motivation to do this.
- It's something I'd like to use myself. I know I cannot possibly compete with commercially available performance software. They're building on a legacy of decades with a sizable team, as well as funding to boot. But if I can cook up something that has enough unique appeal to be worthwhile without all the bells and whistles. Well then my friend. We may just have something.
I've decided to post this in order to try and layout some sort of road map for the future. By writing what I intend to build, I'll hopefully get better at sticking to it. So without further ado, let's look at the features I expect to be able to manage before the first official release of PlanMixPlay.
- Media Engine Re-Write. PlanMixPlay relies heavily on BASS internal timing currently. This is simple and works well, but also means that portions of audio code permeate the video engine code. This is bad, and counter intuitive. A custom built internal timing system is needed.
- Audience feedback re-integration. This feature needs to be re-introduced in a stable and more workable manner. All the code is basically there, but it needs refactoring to its proper working condition.
- Audio/Video Handling. Audio should be manipulatable, similar to vinyl. Video should be streamable and not entirely contained in memory.
That's as much as I dare to promise for now. The devil is in the details of creating these features. They're not particularly tricky on their own (apart from audio time stretching), but to integrate them well and without crashing... That's the challenge.
I hope you'll stick around to see me make good on these goals.